温馨提示×

centos上k8s怎么升级

小樊
34
2026-10-26 20:57:12
栏目: 智能运维

在 CentOS 上升级 Kubernetes(k8s) 一般指的是 kubeadm 集群 的升级。下面给你一个标准、安全的升级流程(以 1.x → 1.y 小版本升级为例,比如 1.28 → 1.29)。


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

1. 查看当前版本

kubectl get nodes
kubeadm version

2. 确认官方升级路线

✅ 只能逐级升级(不能跨多个次要版本)

1.27 -> 1.28 -> 1.29

官方文档: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/

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. 封锁节点(防止调度)

kubectl cordon <master-node>

2. 升级 kubeadm

yum install -y kubeadm-1.29.* --disableexcludes=kubernetes

3. 校验升级计划

kubeadm upgrade plan

4. 执行控制面升级

kubeadm upgrade apply v1.29.x

5. 升级 kubelet & kubectl

yum install -y kubelet-1.29.* kubectl-1.29.* --disableexcludes=kubernetes
systemctl daemon-restart
systemctl restart kubelet

6. 解除封锁

kubectl uncordon <master-node>

三、Worker 节点升级

在 每个 worker 节点 操作:

1. 封锁节点

kubectl cordon <worker-node>
kubectl drain <worker-node> --ignore-daemonsets --delete-emptydir-data

2. 升级 kubeadm

yum install -y kubeadm-1.29.* --disableexcludes=kubernetes

3. 升级节点

kubeadm upgrade node

4. 升级 kubelet

yum install -y kubelet-1.29.* --disableexcludes=kubernetes
systemctl restart kubelet

5. 恢复调度

kubectl uncordon <worker-node>

四、验证集群状态

kubectl get nodes
kubectl version

所有节点 VERSION 应一致。


五、常见问题

1. CentOS 7 支持到哪?

  • Kubernetes 1.28 起不再支持 CentOS 7
  • 建议使用:
    • Rocky Linux 8/9
    • AlmaLinux 8/9
    • Ubuntu 22.04

2. 容器运行时

  • 确保 containerd / docker 版本兼容新 k8s

3. 升级失败怎么办?

  • 使用 etcd 快照回滚
  • 不要跨版本强行升级

六、示例(1.28 → 1.29)

yum install -y kubeadm-1.29.0 --disableexcludes=kubernetes
kubeadm upgrade plan
kubeadm upgrade apply v1.29.0

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

  • ✅ k8s 当前版本
  • ✅ CentOS 版本
  • ✅ 单节点 / 多节点 / 高可用

我可以给你 精确命令版本。

0 踩