温馨提示×

K8s在Debian如何升级

小樊
46
2026-09-23 13:46:32
栏目: 智能运维

下面按常见场景给你讲一下在 Debian 上升级 Kubernetes(K8s) 的标准做法,适用于 kubeadm 部署的集群(最常见)。


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

1. 查看当前版本

kubectl version
kubeadm version

2. 确认可升级版本

apt-cache policy kubeadm

⚠️ 官方建议:一次只升级一个小版本(如 1.28 → 1.29)

3. 备份(强烈建议)

# etcd 备份(控制平面节点)
ETCDCTL_API=3 etcdctl snapshot save snap.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. 更新 apt 源

sudo apt-get update

2. 安装指定版本 kubeadm

例如升级到 1.29.0:

sudo apt-get install -y kubeadm=1.29.0-00 kubelet=1.29.0-00 kubectl=1.29.0-00

3. 验证升级计划

sudo kubeadm upgrade plan

4. 执行升级

sudo kubeadm upgrade apply v1.29.0

5. 重启 kubelet

sudo systemctl daemon-reload
sudo systemctl restart kubelet

三、升级 Worker 节点

1. 在 Master 上驱逐节点

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

2. 在 Worker 节点上升级

sudo apt-get update
sudo apt-get install -y kubeadm=1.29.0-00 kubelet=1.29.0-00
sudo kubeadm upgrade node
sudo systemctl restart kubelet

3. 恢复节点调度

kubectl uncordon <node-name>

四、验证集群状态

kubectl get nodes
kubectl get pods -A

所有节点 VERSION 应一致。


五、如果是单节点(如学习环境)

步骤一样,只是:

  • 不需要 drain
  • 控制平面和 worker 是同一台机器

六、常见问题

1. apt 找不到新版本?

确认源正确:

cat /etc/apt/sources.list.d/kubernetes.list

应包含:

deb https://apt.kubernetes.io/ kubernetes-xenial main

2. kubelet 起不来?

查看日志:

journalctl -u kubelet -f

七、不推荐的方式 ❌

  • 直接 apt upgrade 全部升级
  • 跨多个大版本升级
  • 不备份 etcd

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

  • Debian 版本(11 / 12)
  • K8s 当前版本
  • 是否是 kubeadm / 二进制 / 云厂商托管

我可以给你定制升级命令。

0 踩