在 CentOS 上升级 Kubernetes(K8s) 通常分为 kubeadm 方式 和 二进制方式。下面以 最常见、官方推荐的 kubeadm 方式 为主,按 生产环境安全流程 来说明。
kubectl version
kubeadm version
yum list --showduplicates kubeadm --disableexcludes=kubernetes
⚠️ 升级原则
先升级 第一个 master(kubeadm init 节点)
yum install -y kubeadm-1.29.x-0 --disableexcludes=kubernetes
检查:
kubeadm version
kubeadm upgrade plan
确认无误后执行:
kubeadm upgrade apply v1.29.x
✅ 成功后输出类似:
[upgrade/successful] SUCCESS!
yum install -y kubelet-1.29.x-0 kubectl-1.29.x-0 --disableexcludes=kubernetes
重启 kubelet:
systemctl daemon-reload
systemctl restart kubelet
kubectl drain <node-name> --ignore-daemonsets --force
yum install -y kubeadm-1.29.x-0 --disableexcludes=kubernetes
kubeadm upgrade node
yum install -y kubelet-1.29.x-0 kubectl-1.29.x-0 --disableexcludes=kubernetes
systemctl restart kubelet
kubectl uncordon <node-name>
kubectl get nodes
kubectl version
示例输出:
NAME STATUS VERSION
master Ready v1.29.x
node1 Ready v1.29.x
vault.centos.org 源iptables / firewalld 兼容性journalctl -u kubelet -f
常见原因:
kubeadm upgrade apply v1.28.x
1. 备份 etcd / 配置文件
2. 升级 master kubeadm
3. kubeadm upgrade apply
4. 升级 kubelet
5. 逐个升级 worker
6. 验证集群状态
如果你愿意,可以告诉我:
我可以给你 精确到版本的升级命令。