使用kubekey部署多节点集群
机器规划
name | ip | 作用 | 其他 | |
---|---|---|---|---|
control-server | 192.168.10.6 | 部署机器 | ||
master1 | 192.168.10.11 | 本地/data目录挂载硬盘 | ||
master2 | 192.168.10.12 | 本地/data目录挂载硬盘 | ||
master3 | 192.168.10.13 | 本地/data目录挂载硬盘 | ||
worker1 | 192.168.10.21 | 本地/data目录挂载硬盘 | ||
worker2 | 192.168.10.22 | 本地/data目录挂载硬盘 | ||
worker3 | 192.168.10.23 | 本地/data目录挂载硬盘 |
# 安装kk
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.13 sh -
chmod +x kk
# 创建
./kk create config --with-kubesphere v3.4.1 --with-kubernetes v1.22.12
以上会生成一个配置,config-example.md,完整的config-example.md参考是如下链接
https://github.com/kubesphere/kubekey/blob/master/docs/config-example.md
addons配置规范
https://github.com/kubesphere/kubekey/blob/master/docs/addons.md
备注
- 安装 KubeSphere 3.4 的建议 Kubernetes 版本:v1.20.x、v1.21.x、v1.22.x、v1.23.x、* v1.24.x、* v1.25.x 和 * v1.26.x。带星号的版本可能出现边缘节点部分功能不可用的情况。因此,如需使用边缘节点,推荐安装 v1.23.x。如果不指定 Kubernetes 版本,KubeKey 将默认安装 Kubernetes v1.23.10。有关受支持的 Kubernetes 版本的更多信息,请参见支持矩阵。
- 如果您在这一步的命令中不添加标志
--with-kubesphere
,则不会部署 KubeSphere,只能使用配置文件中的addons
字段安装,或者在您后续使用./kk create cluster
命令时再次添加这个标志。 - 如果您添加标志
--with-kubesphere
时不指定 KubeSphere 版本,则会安装最新版本的 KubeSphere。
本地nas
在本地安装有群辉,或者其他的nas,可以开启nfs
使用nfs-client
addons:
- name: nfs-client
namespace: kube-system
sources:
chart:
name: nfs-client-provisioner
repo: https://charts.kubesphere.io/main
#valuesFile: /home/ubuntu/nfs-client.yaml # Use the path of your own NFS-client configuration file.
values:
- storageClass.defaultClass=false
- nfs.server=192.168.6.3
- nfs.path=/data/kubesphere
开启OpenEBS
KubeKey 支持安装不同的存储插件和存储类型。无论您要安装哪种存储系统,都可以在其配置文件中指定是否设为默认存储类型。如果 KubeKey 检测到未指定默认存储类型,则将默认安装 OpenEBS。
上面nfs-client的storageClass.defaultClass=false,kubekey会默认安装额外的OpenEBS
添加新节点
更改sample.yaml配置文件
如果没有需要执行在本地生成一份
./kk create config --from-cluster
在control-server机器上,将新节点的信息放在 hosts
和 roleGroups
之下。该示例添加了两个新节点(即 node1
和 node2
)
···
spec:
hosts:
- {name: master1, address: 192.168.0.3, internalAddress: 192.168.0.3, user: root, password: Qcloud@123}
- {name: node1, address: 192.168.0.4, internalAddress: 192.168.0.4, user: root, password: Qcloud@123}
- {name: node2, address: 192.168.0.5, internalAddress: 192.168.0.5, user: root, password: Qcloud@123}
roleGroups:
etcd:
- master1
control-plane:
- master1
worker:
- node1
- node2
···
添加节点
./kk add nodes -f sample.yaml
删除节点
先停止调度某个节点
kubectl cordon $NODENAME
运行以下命令删除节点
./kk delete node $NODENAME -f config-sample.yaml
边缘节点(可选)
https://kubesphere.io/zh/blogs/kubesphere-integrate-kubeedge/
OpenELB
https://openelb.io/docs/getting-started/installation/install-openelb-on-kubesphere/