使用Kubekey搭建K8S集群,且同时安装Kubesphere。
使用此种方式搭建集群简单快捷,提供的Dashboard可以满足绝大多数的业务场景,社区活跃度也挺高,遇到的问题大部分都能及时找到,且我们项目组使用此方式搭建的集群也稳定运行了将近一年。
通过使用Kubesphere也降低了K8S的操作门槛,在官方网站也提供了操作文档可供参考。
有机会的话,本人也会写篇文章分享下自己的使用经验。
主机名 | IP | 角色 | 操作系统 | Docker | 内核版本 |
---|---|---|---|---|---|
xx01 | 192.168.2.42 | Master | Ubuntu20.04 | 20.10.17 | 5.13.0-51-generic |
xx02 | 192.168.2.43 | Worker | Ubuntu20.04 | 20.10.17 | 5.13.0-51-generic |
xx03 | 192.168.2.44 | Worker | Ubuntu20.04 | 20.10.17 | 5.13.0-51-generic |
xx04 | 192.168.2.45 | Worker | Ubuntu20.04 | 20.10.17 | 5.13.0-51-generic |
xx05 | 192.168.2.46 | Worker | Ubuntu20.04 | 20.10.17 | 5.13.0-51-generic |
安装工具 | sudo、curl、openssl、ebtables、socat、ipset、ipvsadm、conntrack、nfs client |
---|
Kubekey版本 | KubeSphere版本 | K8S版本 |
---|---|---|
v2.2.1 | v3.3.2 | v1.23.7 |
注:Kubekey2.2.1目前默认的Calico版本为3.20,且不支持指定版本,需手动卸载并重装Calico
sudo ufw disable
swapoff -a # 临时关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久关闭
cat < /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
nano /etc/resolv.conf
nameserver 8.8.8.8
apt install socat conntrack openssh-server nfs-common
apt install socat conntrack nfs-common
sysctl --system
https://cloud.tencent.com/developer/article/1721457
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v2.2.1 sh -
chmod +x kk
KubeSphere支持矩阵
KubeSphere 版本 | 受支持的 Kubernetes 版本 |
---|---|
v3.3.0 | v1.19.x、v1.20.x、v1.21.x、v1.22.x、v1.23.x(实验性支持) |
./kk create config --with-kubernetes v1.23.7 --with-kubesphere v3.3.2
在config-sample.yaml中编辑
hosts:
- {name: xx01, address: 192.168.2.42, internalAddress: 192.168.2.42, user: root, password: "xxx"}
- {name: xx02, address: 192.168.2.43, internalAddress: 192.168.2.43, user: root, password: "xxx"}
- {name: xx03, address: 192.168.2.44, internalAddress: 192.168.2.44, user: root, password: "xxx"}
- {name: xx04, address: 192.168.2.45, internalAddress: 192.168.2.45, user: root, password: "xxx"}
- {name: xx05, address: 192.168.2.46, internalAddress: 192.168.2.46, user: root, password: "xxx"}
roleGroups:
etcd:
- xx01
control-plane:
- xx01
worker:
- xx02
- xx03
- xx04
- xx05
./kk create cluster -f config-sample.yaml
等待即可…
建议设置为可用的DNS,如 8.8.8.8,否则会导致在访问kubesphere时出错,无法解析
注意calico版本与linux内核的支持关系
注意本机实际网卡
1、https://kubesphere.io/zh/docs/v3.3/installing-on-linux/introduction/kubekey/
2、https://kubesphere.com.cn/forum/d/4288-kubesphere-v31/7
3、https://github.com/kubesphere/kubekey/issues/1363