温馨提示×

如何升级debian k8s版本

小樊
50
2026-09-29 10:16:40
栏目: 智能运维

在 Debian 上“升级 K8s 版本”通常包含两部分含义,需要区分清楚:

  1. 升级宿主机 Debian 系统(如 Debian 11 → 12)
  2. 升级 Kubernetes 集群版本(如 1.26 → 1.28)

下面分别说明,生产环境务必先在测试环境验证。


一、升级 Kubernetes 集群(重点)

Kubernetes 不支持跨多个 minor 版本升级,必须逐个 minor 版本升级(例如 1.26 → 1.27 → 1.28)。

1. 升级前准备

kubectl get nodes
kubectl version --short

确认:

  • 当前版本
  • 控制平面 / 工作节点状态正常

备份:

etcdctl snapshot save snapshot.db

2. 升级控制平面(Master)

(1)更新 apt 源

sudo apt update

(2)查看可升级版本

apt-cache policy kubeadm

(3)升级 kubeadm

sudo apt install kubeadm=1.27.x-00

(4)检查升级可行性

sudo kubeadm upgrade plan

(5)执行升级

sudo kubeadm upgrade apply v1.27.x

(6)升级 kubelet 和 kubectl

sudo apt install kubelet=1.27.x-00 kubectl=1.27.x-00
sudo systemctl restart kubelet

3. 升级 Worker 节点(逐台)

(1)驱逐节点

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

(2)在节点上升级

sudo apt install kubeadm=1.27.x-00
sudo kubeadm upgrade node
sudo apt install kubelet=1.27.x-00 kubectl=1.27.x-00
sudo systemctl restart kubelet

(3)恢复调度

kubectl uncordon <node-name>

4. 验证

kubectl get nodes
kubectl version --short

二、升级 Debian 系统(如 11 → 12)

⚠️ 不建议直接升级运行 K8s 的节点系统版本,推荐:

  • 新增新系统节点
  • 逐步迁移工作负载

如果必须升级:

sudo apt update
sudo apt full-upgrade

注意:

  • 内核变化可能影响 CNI / 容器运行时
  • 升级后重启并验证 kubelet

三、常见注意事项

  • 容器运行时(containerd / docker)需兼容新 K8s 版本
  • 使用 kubeadm 管理的集群才适用上述流程
  • 云厂商托管 K8s(ACK / EKS / GKE)不适用

如果你能提供:

  • Debian 版本
  • K8s 当前版本
  • 是否使用 kubeadm / k3s / 云厂商

我可以给你更精确的升级命令。

0 踩