KubeKey一键安装部署k8s集群和KubeSphere详细教程
目录
一、KubeKey简介
二、k8s集群+KubeSphere安装
集群规划
硬件要求
Kubernetes支持版本
操作系统要求
SSH免密登录
配置集群时钟
所有节点安装依赖
安装docker
DNS要求
存储要求
下载 KubeKey
验证KubeKey
配置集群文件
安装集群
验证命令
登录页面
一、KubeKey简介
KubeKey是一个开源轻量级工具,采用go语言开发,用于部署Kubernetes集群。它提供了一种灵活、快速、方便的方式来安装Kubernetes和KubeSphere,具有以下特点:
- 安装可选,仅安装 Kubernetes或同时安装 Kubernetes 和 KubeSphere。
- 支持在线和离线安装,方便用户在离线环境下快速部署集群。
- 安装简单高效,相比Ansible方式安装依赖更少,使用Kubeadm 在节点上并行安装 K8s 集群,提升了安装效率节省了安装时间。
- 涵盖多种部署方式,从 all-in-one 扩展到多节点集群包括 HA 集群。
官方地址:KubeKey
Github地址:GitHub - kubesphere/kubekey: Install Kubernetes/K3s only, both Kubernetes/K3s and KubeSphere, and related cloud-native add-ons, it supports all-in-one, multi-node, and HA 🔥 ⎈ 🐳
二、k8s集群+KubeSphere安装
集群规划
| 主机 IP | 主机名 | 角色 |
|---|---|---|
| 192.168.5.10 | node1 | control plane, etcd |
| 192.168.5.11 | node2 | worker |
| 192.168.5.12 | node3 | worker |
硬件要求
| 系统 | 最低要求(每个节点) |
|---|---|
| Ubuntu 16.04,18.04,20.04 | CPU:2 核,内存:4 G,硬盘:20 G |
| Debian Buster,Stretch | CPU:2 核,内存:4 G,硬盘:20 G |
| CentOS 7.x | CPU:2 核,内存:4 G,硬盘:20 G |
| Red Hat Enterprise Linux 7 | CPU:2 核,内存:4 G,硬盘:20 G |
| SUSE Linux Enterprise Server 15 /openSUSE Leap 15.2 | CPU:2 核,内存:4 G,硬盘:20 G |
Kubernetes支持版本
- v1.19: v1.19.15
- v1.20: v1.20.10
- v1.21: v1.21.14
- v1.22: v1.22.15
- v1.23: v1.23.10 (default)
- v1.24: v1.24.7
- v1.25: v1.25.3
操作系统要求
笔者操作系统为CentOS Linux release 7.9.2009 x86_64,环境配置如下:
SSH免密登录
SSH配置免密登录,可以访问所有节点,具体配置可参考我的另一篇博客K8S简介和安装部署详细教程-CSDN博客
配置集群时钟
所有节点保证时间同步, 具体配置可参考我的另一篇博客K8S简介和安装部署详细教程-CSDN博客
所有节点安装依赖
yum install curl openssl socat conntrack ebtables ipset ipvsadm bash-completion -y
安装docker
docker可以自己安装,也可以通过 KubeKey 安装, 自行安装可参考我的另一篇博客在Centos系统中安装、体验和卸载Docker_# executing docker install script, commit: e5543d4-CSDN博客
DNS要求
确保/etc/resolv.conf中的DNS地址可用,测试DNS解析功能如下:
# 如果DNS配置正确,会返回www.baidu.com的IP地址信息
[root@node1 ~]# nslookup www.baidu.com
Server: 192.168.1.1
Address: 192.168.1.1#53Non-authoritative answer:
Name: www.baidu.com
Address: 180.101.49.44
Name: www.baidu.com
Address: 180.101.51.73
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 240e:e9:6002:1ac:0:ff:b07e:36c5
Name: www.a.shifen.com
Address: 240e:e9:6002:1fd:0:ff:b0e1:fe69
存储要求
KubeKey 支持安装不同的存储插件和存储类型,如果KubeKey 未指定默认存储类型,则将默认安装 OpenEBS,使用节点HostPost创建本地持久卷,比较适合开发和测试环境,对于生产,请使用 NFS/Ceph/GlusterFS作为持久化存储,安装配置NFS服务可移步博客:CentOS系统安装NFS-CSDN博客
下载 KubeKey
在任一节点下载最新版KubeKey,当前最新版为v3.1.7
[root@node1 ~]# export KKZONE=cn # 设置下载区域为中国,加速下载
[root@node1 ~]# curl -sfL https://get-kk.kubesphere.io | sh -Downloading kubekey v3.1.7 from https://kubernetes.pek3b.qingstor.com/kubekey/releases/download/v3.1.7/kubekey-v3.1.7-linux-amd64.tar.gz ...Kubekey v3.1.7 Download Complete![root@node1 ~]# chmod +x kk #添加可执行权限
验证KubeKey
[root@node1 ~]# ./kk version
kk version: &version.Info{Major:"3", Minor:"1", GitVersion:"v3.1.7", GitCommit:"da475c670813fc8a4dd3b1312aaa36e96ff01a1f", GitTreeState:"clean", BuildDate:"2024-10-30T09:41:20Z", GoVersion:"go1.19.2", Compiler:"gc", Platform:"linux/amd64"}
配置集群文件
使用 KubeKey 生成默认的集群配置文件,可指定k8s版本,不填选当前默认版本,不添加标志 --with-kubesphere,则不会部署 KubeSphere,添加了标志不指定 KubeSphere 版本,则会安装最新版本的 KubeSphere。
# 同时安装KubeSphere
[root@node1 ~]# ./kk create config --with-kubesphere
Generate KubeKey config file successfully
编辑config-sample.yaml配置文件,配置节点信息和集群参数。
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:name: sample
spec:hosts:- {name: node1, address: 192.168.5.10, internalAddress: 192.168.5.10, user: root, password: "xxx"}- {name: node2, address: 192.168.5.11, internalAddress: 192.168.5.11, user: root, password: "xxx"}- {name: node3, address: 192.168.5.12, internalAddress: 192.168.5.12, user: root, password: "xxx"}roleGroups:etcd:- node1control-plane: - node1worker:- node2- node3
...addons:- name: nfs-clientnamespace: kube-systemsources: chart: name: nfs-client-provisionerrepo: https://charts.kubesphere.io/mainvalues:- storageClass.defaultClass=true- nfs.server=192.168.5.10- nfs.path=/data/nfs
安装集群
使用配置文件创建集群,默认安装k8s版本为v1.23.17,安装过程中出现是否继续安装输入yes,安装过程如下:
[root@node1 ~]# export KKZONE=cn
[root@node1 ~]# ./kk create cluster -f config-sample.yaml_ __ _ _ __
| | / / | | | | / /
| |/ / _ _| |__ ___| |/ / ___ _ _
| \| | | | '_ \ / _ \ \ / _ \ | | |
| |\ \ |_| | |_) | __/ |\ \ __/ |_| |
\_| \_/\__,_|_.__/ \___\_| \_/\___|\__, |__/ ||___/17:57:28 CST [GreetingsModule] Greetings
17:57:28 CST message: [node3]
Greetings, KubeKey!
17:57:28 CST message: [node2]
Greetings, KubeKey!
17:57:28 CST message: [node1]
Greetings, KubeKey!
17:57:28 CST success: [node3]
17:57:28 CST success: [node2]
17:57:28 CST success: [node1]
17:57:28 CST [NodePreCheckModule] A pre-check on nodes
17:57:29 CST success: [node2]
17:57:29 CST success: [node1]
17:57:29 CST success: [node3]
17:57:29 CST [ConfirmModule] Display confirmation form
+-------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
| name | sudo | curl | openssl | ebtables | socat | ipset | ipvsadm | conntrack | chrony | docker | containerd | nfs client | ceph client | glusterfs client | time |
+-------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
| node1 | y | y | y | y | y | y | y | y | y | 26.1.4 | 1.6.33 | y | | | CST 17:57:29 |
| node2 | y | y | y | y | y | y | y | y | y | 26.1.4 | 1.6.33 | y | | | CST 17:57:29 |
| node3 | y | y | y | y | y | y | y | y | y | 26.1.4 | 1.6.33 | y | | | CST 17:57:29 |
+-------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+This is a simple check of your environment.
Before installation, ensure that your machines meet all requirements specified at
https://github.com/kubesphere/kubekey#requirements-and-recommendationsInstall k8s with default version: v1.23.17
Continue this installation? [yes/no]: yes
安装时间大概20分钟左右,console最后会打印如下内容表示安装k8s+KubeSphere成功。
21:46:03 CST success: [node1]
#####################################################
### Welcome to KubeSphere! ###
#####################################################Console: http://192.168.5.10:30880
Account: admin
Password: P@88w0rd
NOTES:1. After you log into the console, please check themonitoring status of service components in"Cluster Management". If any service is notready, please wait patiently until all components are up and running.2. Please change the default password after login.#####################################################
https://kubesphere.io 2025-02-23 21:58:22
#####################################################
验证命令
执行以下命令也可以看到安装结果
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f
登录页面
浏览器打开http://192.168.5.10:30880,输入用户名和密码
Account: admin
Password: P@88w0rd

初次登录需要修改密码

登录后界面如下:

相关文章:
KubeKey一键安装部署k8s集群和KubeSphere详细教程
目录 一、KubeKey简介 二、k8s集群KubeSphere安装 集群规划 硬件要求 Kubernetes支持版本 操作系统要求 SSH免密登录 配置集群时钟 所有节点安装依赖 安装docker DNS要求 存储要求 下载 KubeKey 验证KubeKey 配置集群文件 安装集群 验证命令 登录页面 一、Ku…...
UE5网络通信架构解析
文章目录 前言一、客户端-服务器架构(C/S Model)二、对等网络架构(P2P,非原生支持)三、混合架构(自定义扩展)四、UE5网络核心机制 前言 UE5的网络通信主要基于客户端-服务器(C/S&am…...
实验3 知识表示与推理
实验3 知识表示与推理 一、实验目的 (1)掌握知识和知识表示的基本概念,理解其在AI中的深刻含义与意义; (2)熟悉AI中常用的知识表示方法的优缺点及其应用场景; (3)掌握产…...
基于Springboot银行信用卡额度管理系统【附源码】
基于Springboot银行信用卡额度管理系统 效果如下: 系统登陆页面 用户个人中心页面 新增信用卡申请页面 评估审核页面 管理员主页面 评估审核页面 操作日志管理页面 消费页面 研究背景 随着金融行业的快速发展和信息技术的不断进步,信用卡作为一种便捷…...
达梦数据库学习笔记@1
目录 达梦数据库学习笔记一、表空间管理(一)默认表空间(二)相关数据字典(三)表空间操作(四)临时表空间管理 二、重做日志管理(一)系统视图(二&…...
图像处理篇---图像处理中常见参数
文章目录 前言一、分贝(dB)的原理1.公式 二、峰值信噪比(PSNR, Peak Signal-to-Noise Ratio)1.用途2.公式3.示例 三、信噪比(SNR, Signal-to-Noise Ratio)1.用途2.公式3.示例 四、动态范围(Dyna…...
AI Agent实战:打造京东广告主的超级助手 | 京东零售技术实践
前言 自2022年末ChatGPT的问世,大语言模型(LLM)技术引发全球关注。在大模型技术落地的最佳实践中,智能体(Agent)架构显现出巨大潜力,成为业界的普遍共识,各大公司也纷纷启动Agent技…...
50周学习go语言:第1周 环境搭建
以下是为零基础学习者准备的详细第1周教程,包含环境搭建、工具配置和首个Go程序的完整操作指南: 一、Go语言环境安装(Windows/macOS/Linux通用) 1. 下载安装包 官网地址:https://go.dev/dl//根据系统选择对应版本&am…...
4. MySQL 逻辑架构说明
4. MySQL 逻辑架构说明 文章目录 4. MySQL 逻辑架构说明1. 逻辑架构剖析1.1 服务器处理客户端请求1.2 Connectors(连接器)1.3 第1层:连接层1.4 第2层:服务层1.5 第3层:引擎层1.6 存储层 2. SQL执行流程2.1 MySQL 中的 SQL 执行流程 2.2 MySQL…...
《AI与NLP:开启元宇宙社交互动新纪元》
在科技飞速发展的当下,元宇宙正从概念逐步走向现实,成为人们关注的焦点。而在元宇宙诸多令人瞩目的特性中,社交互动体验是其核心魅力之一。人工智能(AI)与自然语言处理(NLP)技术的迅猛发展&…...
面对STM32的庞大体系,如何避免迷失在细节中?
我第一次接触STM32时,我以为抱着开发板就是拥抱未来,实际上一开机就喜提四大耳光,看到卖家演示的MP3播放、TFT彩屏、网口通信好炫酷,忍不住买回来掌握这些神技,到最后发现最实用的还是开发板的关机键和复位键。 看视频…...
ragflow-RAPTOR到底是什么?请通俗的解释!
RAPTOR有两种不同的含义,具体取决于上下文: RAPTOR作为一种信息检索技术 RAPTOR是一种基于树状结构的信息检索系统,全称为“Recursive Abstractive Processing for Tree-Organized Retrieval”(递归抽象处理树组织检索)…...
Linux系统移植之Uboot启动流程
Linux系统移植之Uboot启动流程 一,Uboot启动流程1.Uboot的两阶段1.1.第一阶段1.11.硬件初始化1.12.复制 U-Boot 到 RAM1.13.跳转到第二阶段 1.2.第二阶段1.21.C 语言环境初始化1.22. 硬件设备初始化1.23. 加载环境变量1.24. 显示启动信息1.25. 等待用户输入…...
【Open X-Embodiment】简单数据下载与预处理
文章目录 1. RLDS Dataset2. 处理成numpy格式3. 存储桶 1. RLDS Dataset 从 Octo 里面找到数据下载的代码 rlds_dataset_mod github 按照官网代码配置环境后,修改 prepare_open_x.sh,相当于只用 gsutil 下载数据: DOWNLOAD_DIR/mnt/data…...
【第四节】C++设计模式(创建型模式)-Builder(建造者)模式
目录 引言 一、Builder 模式概述 二、Builder 模式举例 三、Builder 模式的结构 四、Builder 模式的实现 五、Builder 模式的优缺点 六、总结 引言 Builder 模式是一种创建型设计模式,旨在将复杂对象的构建过程与其表示分离。通过一步步构建对象,…...
排查JVM的一些命令
查看JVM相关信息的方法 环境: Win10, jdk17 查看端口的Pid netstat -ano | findstr <端口号>列出当前运行的JVM进程 ## 用于输出JVM中运行的进程状态信息。通过jps,可以快速获取Java进程的PID(进程标识符), …...
uni-app(位置1)
文章目录 一、获取当前的地理位置、速度 uni.getLocation(OBJECT)二、打开地图选择位置 uni.chooseLocation(OBJECT)三、使用应用内置地图查看位置。uni.openLocation(OBJECT) 一、获取当前的地理位置、速度 uni.getLocation(OBJECT) App平台 manifest中配置好自己的地图厂商k…...
某手sig3-ios算法 Chomper黑盒调用
Chomper-iOS界的Unidbg 最近在学习中发现一个Chomper框架,Chomper 是一个模拟执行iOS可执行文件的框架,类似于安卓端大名鼎鼎的Unidbg。 这篇文章使用Chomper模拟执行某手的sig3算法,初步熟悉该框架。这里只熟悉模拟执行步骤以及一些常见的…...
登录-05.JWT令牌-介绍
一.JWT令牌 JWT令牌是一种简洁的、自包含的格式,用于在通讯双方之间以json数据格式安全的传输数据。说白了,JWT令牌就是将json格式的数据进行封装,从而实现安全传输。 所谓简洁,就是指JWT令牌就是一个简单的字符串。 所谓自包含…...
Mac下Python版本管理,适用于pyenv不起作用的情况
前言 声明:之前也在网上看到过可以使用pyenv来管理python版本,但由于作者的python安装路径实在是繁杂不堪,因此安装完成pyenv体验下来没有任何用处,但偶然发现vscode似乎可以看到各个python版本,因此写下这篇博客记录…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
