温馨提示×

centos k8s怎么升级

小樊
47
2026-09-15 13:18:15
栏目: 智能运维

在 CentOS 上升级 Kubernetes(k8s)集群,一般分为 控制节点(Master) 和 工作节点(Worker) 两部分。下面以 kubeadm 部署的集群 为例(最常见场景)。


一、升级前准备

1. 查看当前版本

kubectl version
kubeadm version

2. 确认可升级版本

yum list --showduplicates kubeadm --disableexcludes=kubernetes

⚠️ 注意

  • 只能 逐个 Minor 版本升级
    • 例如:1.24 → 1.25 → 1.26
  • 不能跨大版本升级

3. 备份(非常重要)

# etcd 数据备份
ETCDCTL_API=3 etcdctl snapshot save snapshot.db \
  --endpoints=https://127.0.0.1:2379 \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key

二、升级 Master 节点

1. 升级 kubeadm

yum install -y kubeadm-1.26.0-0 --disableexcludes=kubernetes

2. 检查升级计划

kubeadm upgrade plan

3. 执行升级

kubeadm upgrade apply v1.26.0

4. 升级 kubelet 和 kubectl

yum install -y kubelet-1.26.0-0 kubectl-1.26.0-0 --disableexcludes=kubernetes

5. 重启 kubelet

systemctl daemon-reload
systemctl restart kubelet

三、升级 Worker 节点

在 Worker 节点 上操作:

1. 升级 kubeadm

yum install -y kubeadm-1.26.0-0 --disableexcludes=kubernetes

2. 驱逐节点(在 Master 执行)

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

3. 升级节点

kubeadm upgrade node

4. 升级 kubelet

yum install -y kubelet-1.26.0-0 --disableexcludes=kubernetes
systemctl daemon-reload
systemctl restart kubelet

5. 恢复节点调度

kubectl uncordon <node-name>

四、验证升级结果

kubectl get nodes
kubectl version

五、常见问题

1. CentOS 7 支持情况

  • CentOS 7 已 EOL
  • 新版本 k8s(1.28+)建议使用 Rocky / Alma / CentOS Stream

2. 容器运行时

  • 确认 containerd / docker 版本兼容
ctr version

六、如果你用的是其他方式

  • 二进制部署:手动替换二进制文件
  • kubespray / Rancher / k3s:使用对应工具升级

如果你能告诉我:

  • ✅ k8s 当前版本
  • ✅ 目标版本
  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 部署方式(kubeadm / 二进制 / 工具)

我可以直接给你 精确升级命令。

0 踩