在Linux上使用kubeadm配置多Master节点的Kubernetes集群需遵循以下核心步骤:
-
前置条件:
- 所有节点(Master/Worker)需关闭swap、防火墙,同步时间,配置主机名解析(/etc/hosts或DNS)
- 安装Docker/containerd及kubeadm/kubelet/kubectl(版本需严格匹配)
-
负载均衡配置:
- 部署HAProxy或Keepalived,将虚拟IP指向多个Master节点的6443端口
control-plane-endpoint
参数需指向该虚拟IP
-
初始化首个Master:
- 使用
kubeadm init --config=kubeadm-config.yaml
生成集群 - 配置文件需包含
ControlPlaneEndpoint
及certificateKey
(用于后续Master加入)
- 使用
-
扩展Master节点:
- 从首个Master节点复制证书(/etc/kubernetes/pki)到新节点
- 执行
kubeadm join
命令时需携带--control-plane
及--certificate-key
参数
-
Etcd集群:
- 若采用堆叠式etcd,需确保每个Master节点的etcd实例组成集群
- 使用
etcdctl cluster-health
验证状态
-
网络插件:
- 部署Calico/Flannel后,通过
kubectl get nodes
验证节点Ready状态
- 部署Calico/Flannel后,通过
关键注意事项:
- 证书管理需严格一致,避免跨节点文件差异
- 使用
kubeadm config print join-command
时注意令牌有效期 - 建议使用Kubernetes 1.24+版本以获得更好的高可用支持