温馨提示×

CentOS K8s如何升级

小樊
40
2026-08-20 01:55:25
栏目: 智能运维

CentOS 上升级 Kubernetes(K8s) 通常分为 kubeadm 方式二进制方式。下面以 最常见、官方推荐的 kubeadm 方式 为主,按 生产环境安全流程 来说明。


一、升级前准备(非常重要)

1️⃣ 查看当前版本

kubectl version
kubeadm version

2️⃣ 确认可升级版本

yum list --showduplicates kubeadm --disableexcludes=kubernetes

⚠️ 升级原则

  • 每次 只升级一个小版本(如 1.28 → 1.29)
  • 不能跨版本升级

二、升级控制平面(Master 节点)

先升级 第一个 master(kubeadm init 节点)

1️⃣ 升级 kubeadm

yum install -y kubeadm-1.29.x-0 --disableexcludes=kubernetes

检查:

kubeadm version

2️⃣ 验证升级计划

kubeadm upgrade plan

确认无误后执行:

kubeadm upgrade apply v1.29.x

✅ 成功后输出类似:

[upgrade/successful] SUCCESS!

3️⃣ 升级 kubelet 和 kubectl

yum install -y kubelet-1.29.x-0 kubectl-1.29.x-0 --disableexcludes=kubernetes

重启 kubelet:

systemctl daemon-reload
systemctl restart kubelet

三、升级 Worker 节点

1️⃣ 驱逐节点(在 master 执行)

kubectl drain <node-name> --ignore-daemonsets --force

2️⃣ 升级 kubeadm

yum install -y kubeadm-1.29.x-0 --disableexcludes=kubernetes

3️⃣ 升级节点

kubeadm upgrade node

4️⃣ 升级 kubelet & kubectl

yum install -y kubelet-1.29.x-0 kubectl-1.29.x-0 --disableexcludes=kubernetes
systemctl restart kubelet

5️⃣ 恢复节点调度

kubectl uncordon <node-name>

四、验证升级结果

kubectl get nodes
kubectl version

示例输出:

NAME        STATUS   VERSION
master      Ready    v1.29.x
node1       Ready    v1.29.x

五、CentOS 特殊注意事项

✅ CentOS 7

  • EOL(停止维护)
  • 建议:
    • 迁移到 Rocky Linux / AlmaLinux
    • 或至少使用 vault.centos.org

✅ CentOS 8 Stream

  • 支持 kubeadm
  • 注意 iptables / firewalld 兼容性

六、常见问题

1️⃣ kubelet 起不来

journalctl -u kubelet -f

常见原因:

  • 配置版本不匹配
  • CNI 插件未升级

2️⃣ 升级失败回滚

kubeadm upgrade apply v1.28.x

七、推荐升级顺序总结

1. 备份 etcd / 配置文件
2. 升级 master kubeadm
3. kubeadm upgrade apply
4. 升级 kubelet
5. 逐个升级 worker
6. 验证集群状态

如果你愿意,可以告诉我:

  • ✅ CentOS 版本(7 / 8 Stream)
  • ✅ K8s 当前版本
  • ✅ 单 master 还是多 master
  • ✅ 是否生产环境

我可以给你 精确到版本的升级命令

0