温馨提示×

centos k8s部署怎么升级

小樊
38
2026-09-12 06:40:27
栏目: 智能运维

CentOS 上部署的 Kubernetes(k8s)升级,通常分为 kubeadm 方式二进制方式。大多数 CentOS 生产环境使用 kubeadm,下面以 kubeadm + CentOS 7/8 为例说明。


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

1. 查看当前版本

kubectl version
kubeadm version

2. 确认升级路径(不能跨大版本)

✅ 支持:

  • 1.24 → 1.25 → 1.26

❌ 不支持:

  • 1.24 → 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

# kube config
cp -r /etc/kubernetes /etc/kubernetes-bak

4. 检查节点状态

kubectl get nodes
kubectl get pods -A

二、升级 Master 节点

1. 禁止调度(腾空节点)

kubectl drain <master-node> --ignore-daemonsets --delete-emptydir-data

2. 更新 yum 源

yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

3. 查看可升级版本

yum list --showduplicates kubeadm | sort -r

4. 升级 kubeadm

yum install -y kubeadm-1.25.6-0

5. 验证升级计划

kubeadm upgrade plan

6. 执行升级

kubeadm upgrade apply v1.25.6

7. 升级 kubelet & kubectl

yum install -y kubelet-1.25.6-0 kubectl-1.25.6-0
systemctl daemon-reload
systemctl restart kubelet

8. 取消驱逐

kubectl uncordon <master-node>

三、升级 Worker 节点

1. 驱逐节点

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

2. 升级组件

yum install -y kubeadm-1.25.6-0
kubeadm upgrade node
yum install -y kubelet-1.25.6-0 kubectl-1.25.6-0
systemctl daemon-reload
systemctl restart kubelet

3. 恢复调度

kubectl uncordon <worker-node>

四、验证升级结果

kubectl get nodes
kubectl version

五、常见问题

1. CentOS 8 已 EOL

  • 建议使用 Alibaba / Tencent 镜像
  • 或迁移到 Rocky / AlmaLinux

2. Docker 与 containerd

  • 1.24+ 默认不再支持 dockershim
  • 使用 containerd:
systemctl status containerd

3. 网络插件

  • Flannel / Calico 一般无需升级
  • 若出现网络异常,可重启 CNI 插件

六、如果是二进制部署?

升级方式不同(手动替换二进制 + 重启服务),如果你是这样部署的,可以告诉我,我给你 二进制升级步骤


如果你能补充:

  • k8s 版本(如 1.23 → 1.25)
  • CentOS 版本
  • 是否使用 kubeadm

我可以给你 精确升级命令

0