下面按常见场景给你一个**CentOS 上升级 Kubernetes(k8s)**的完整思路和步骤。
假设你使用的是 kubeadm 部署(最常见、官方推荐)。
kubectl version
kubeadm version
yum list --showduplicates kubeadm --disableexcludes=kubernetes
⚠️ 升级原则
1.26.x → 1.27.x1.24.x → 1.27.xcp -r /etc/kubernetes /etc/kubernetes.bak
etcdctl snapshot save /backup/etcd-snapshot.db
yum install -y kubeadm-1.27.x-0 --disableexcludes=kubernetes
验证:
kubeadm version
kubeadm upgrade plan
确认无误后执行:
kubeadm upgrade apply v1.27.x
yum install -y kubelet-1.27.x-0 kubectl-1.27.x-0 --disableexcludes=kubernetes
重启 kubelet:
systemctl daemon-reload
systemctl restart kubelet
逐台升级,不要同时升级多个节点
kubectl drain <node-name> --ignore-daemonsets --force
yum install -y kubeadm-1.27.x-0 --disableexcludes=kubernetes
kubeadm upgrade node
yum install -y kubelet-1.27.x-0 kubectl-1.27.x-0 --disableexcludes=kubernetes
systemctl restart kubelet
kubectl uncordon <node-name>
kubectl get nodes
kubectl version
示例输出:
NAME STATUS VERSION
master Ready v1.27.x
node1 Ready v1.27.x
确认 Docker 与 k8s 版本兼容(一般没问题)
确认 containerd 版本:
containerd --version
v1.28+(对老系统支持更好)setenforce 0
systemctl stop firewalld
Master kubeadm
→ kubeadm upgrade apply
→ kubelet + kubectl
→ Worker drain
→ Worker kubeadm upgrade
→ Worker kubelet
→ uncordon
如果你愿意,可以告诉我:
我可以给你精确到命令的升级方案。