Skip to main content

使用kubekey部署多节点集群

机器规划

nameip作用其他
control-server192.168.10.6部署机器
master1192.168.10.11本地/data目录挂载硬盘
master2192.168.10.12本地/data目录挂载硬盘
master3192.168.10.13本地/data目录挂载硬盘
worker1192.168.10.21本地/data目录挂载硬盘
worker2192.168.10.22本地/data目录挂载硬盘
worker3192.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机器上,将新节点的信息放在 hostsroleGroups 之下。该示例添加了两个新节点(即 node1node2

···
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/

CertManager