在 CentOS 上升级 Kubernetes(k8s)版本,通常分为 规划 → 升级控制平面 → 升级节点 → 验证 几个阶段。下面给你一套通用、生产可用的升级流程(适用于 kubeadm 部署的集群,最常见)。
kubectl version --short
kubeadm version
示例:
Server Version: v1.26.3
yum list --showduplicates kubeadm --disableexcludes=kubernetes
⚠️ 一次只能升级一个小版本 例如:
1.26 → 1.27 ✅
1.26 → 1.28 ❌
kubectl get nodes
kubectl get pods -A
确保:
cp -r /etc/kubernetes /etc/kubernetes.bak
etcdctl snapshot save /backup/etcd.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
⚠️ 不要同时升级所有 worker
kubectl drain node-name \
--ignore-daemonsets \
--delete-emptydir-data
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
kubelet --version
示例:
NAME STATUS VERSION
master Ready v1.27.x
node-1 Ready v1.27.x
✅ 可以,但:
/etc/kubernetes.bak 恢复配置流程不同,需要:
控制平面 → Master kubelet → Worker 节点(逐台)
如果你愿意,可以告诉我:
我可以给你 精确到命令的升级方案 ✅