温馨提示×

debian怎样升级已部署k8s

小樊
38
2026-10-08 05:01:28
栏目: 智能运维

在 Debian 上“升级已部署的 Kubernetes(k8s)集群”,通常指 kubeadm 部署的集群。下面按标准、安全、可控的流程说明。


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

1. 查看当前版本

kubectl version
kubeadm version

2. 确认可升级版本

apt update
apt-cache policy kubeadm

⚠️ K8s 不支持跨多个大版本升级
例如:1.26 → 1.27 → 1.28(每次只能 +1)

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

apt update
apt install -y kubeadm=1.28.x-00 kubelet=1.28.x-00 kubectl=1.28.x-00

2. 验证升级计划

kubeadm upgrade plan

3. 执行升级

kubeadm upgrade apply v1.28.x

4. 重启 kubelet

systemctl daemon-reload
systemctl restart kubelet

三、升级 Worker 节点(逐台)

1. 封锁节点(Master 上执行)

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

2. 在 Worker 上升级

apt update
apt install -y kubeadm=1.28.x-00 kubelet=1.28.x-00
kubeadm upgrade node
systemctl restart kubelet

3. 解除封锁

kubectl uncordon <node-name>

四、验证集群状态

kubectl get nodes
kubectl get pods -A

五、常见问题

Q1:不是 kubeadm 部署的?

  • 二进制部署:手动替换二进制文件
  • k3s:
    curl -sfL https://get.k3s.io | sh -
    

Q2:能否不中断业务?

✅ 可以

  • 多节点逐台升级
  • Pod 会自动迁移

Q3:Debian 版本影响吗?

  • Debian 11 / 12 均支持
  • 注意内核版本(推荐 ≥ 5.x)

六、推荐升级顺序

1.27 → 1.28 → 1.29 → 1.30

如果你能告诉我:

  • k8s 当前版本
  • 部署方式(kubeadm / 二进制 / k3s)
  • 单节点还是多节点

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

0 踩