在私有数据中心使用kubeadm部署Kubernetes高可用集群,需从控制平面、etcd集群及负载均衡三个层面实现冗余。以下是关键步骤:
- 控制平面冗余:至少部署3个Master节点,通过kubeadm init时指定--control-plane-endpoint指向负载均衡器(如HAProxy+Keepalived),使用--upload-certs自动分发证书。
- etcd集群高可用:选择堆叠式(Stacked)或独立etcd集群模式。堆叠式需每个Master节点部署etcd,独立模式需单独部署3节点etcd集群并配置TLS通信。
- 负载均衡配置:API Server前端需部署负载均衡器(建议至少双节点+VIP),确保TCP/6443端口负载到所有Master节点。
- 节点联入策略:工作节点通过负载均衡器连接到API Server,避免单点依赖。
实践经验:
- 网络需保证低延迟(etcd要求<200ms),优先使用BGP或VRRP协议实现负载均衡器高可用
- 使用kubeadm config upload生成全局配置,确保各节点参数一致性
- 部署后通过kubectl get nodes -o wide及etcdctl endpoint status验证拓扑
- 私有环境需预配镜像仓库并配置kubeadm的imageRepository参数
- 建议结合Rook+Ceph实现持久化存储的高可用