需求描述
当前有十台主机,主机IP为192.168.56.101-110
,用户为voidking
,具有sudo权限。
现在想要用这十台主机搭建一个K8S集群,版本1.22.15,其中3台作为master,7台作为worker。
参考文档:
- 利用 kubeadm 创建高可用集群
- High Availability Considerations
- k8s高可用部署:keepalived + haproxy
- 使用 Keepalived 和 HAproxy 创建高可用 Kubernetes 集群
- 利用 kubeadm 创建 kubernetes 的高可用集群
安装思路
最简单的方法,我们可以使用kubeadm逐个主机进行安装配置,参考《kubeadm安装部署K8S集群——CentOS篇》。
但是挨个安装效率太低了,所以我们希望能够批量安装,使用 ansible+kubeadm 。有一个kubeadm-ansible项目,可以使用ansible+kubeadm实现批量安装,但是已经废弃了(两年没有更新,issue也没人处理)。
因此,需要自行实现ansible+kubeadm的批量安装方式。
此外,因为要3台master配置高可用,所以还要安装keepalived+haproxy。
整体操作流程:
- 管理节点安装配置ansible
- 所有节点安装docker
- 所有节点允许iptables检查桥接流量
- 所有节点安装kubeadm+kubelet+kubectl
- master节点安装keepalived+haproxy
- 初始化master节点(创建集群)
- worker节点加入到集群中
- 测试使用
为方便描述,下文中使用主机IP的最后一段作为该主机的简称,例如:192.168.56.101
简称为101
。