在 CentOS 上构建高可用与可扩展的 Kubernetes 集群
一 架构与容量规划
二 基础环境准备
swapoff -a && sed -i '/swap/s/^/#/' /etc/fstabsetenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/confignet.bridge.bridge-nf-call-iptables=1、net.bridge.bridge-nf-call-ip6tables=1net.ipv4.ip_forward=1、vm.swappiness=0ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack/etc/modules-load.d/ipvs.conf 并重启 systemd-modules-load.service。三 高可用控制平面部署
方案一 kubeadm 多 Master + 外部 LB(推荐)
kubeadm init --control-plane-endpoint "VIP:6443" --upload-certs$HOME/.kube/config 供 kubectl 使用。kubeadm join ... --control-plane ... --certificate-key <key> 加入 Masterkubeadm join VIP:6443 ... 加入 Workerkubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml。方案二 二进制部署(内网/离线友好)
四 扩展性与弹性伸缩
节点扩容
kubeadm join VIP:6443 ... 加入集群,验证 kubectl get nodes 状态;工作负载弹性
kubectl autoscale deployment myapp --cpu-percent=80 --min=2 --max=10五 稳定性与运维要点
/etc/kubernetes/manifests、/var/lib/kubelet);可使用 Velero 将备份存储至对象存储,并定期演练恢复流程。