温馨提示×

如何在debian升级k8s

小樊
45
2026-10-11 04:15:39
栏目: 智能运维

在 Debian 上“升级 Kubernetes”通常分为 kubeadm 集群升级 和 仅客户端工具(kubectl/kubelet)升级 两种情况。下面以 kubeadm 管理的集群 为主说明(最常见场景)。


一、升级前准备(重要)

1. 查看当前版本

kubectl version --short
kubeadm version

2. 确认可升级版本

apt update
apt-cache madison kubeadm

⚠️ 规则:

  • 只能 逐个次要版本升级(如 1.28 → 1.29 → 1.30)
  • 不能跨大版本(如 1.27 → 1.30 ❌)

3. 备份(强烈建议)

etcdctl snapshot save snapshot.db

或直接使用集群备份方案(Velero 等)


二、升级控制平面(Master)

1. 升级 kubeadm

apt-mark unhold kubeadm
apt update
apt install -y kubeadm=1.30.x-00
apt-mark hold kubeadm

2. 检查升级可行性

kubeadm upgrade plan

3. 执行控制面升级

kubeadm upgrade apply v1.30.x

4. 升级 kubelet 和 kubectl

apt-mark unhold kubelet kubectl
apt install -y kubelet=1.30.x-00 kubectl=1.30.x-00
apt-mark hold kubelet kubectl

systemctl restart kubelet

三、升级 Worker 节点

在 Master 上驱逐节点:

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

在 Worker 节点上:

apt-mark unhold kubeadm
apt update
apt install -y kubeadm=1.30.x-00
apt-mark hold kubeadm

kubeadm upgrade node

apt-mark unhold kubelet
apt install -y kubelet=1.30.x-00
apt-mark hold kubelet

systemctl restart kubelet

回到 Master:

kubectl uncordon <node-name>

四、验证集群状态

kubectl get nodes
kubectl get pods -n kube-system

五、仅升级 kubectl(不升级集群)

如果你只是想更新命令行工具:

apt update
apt install -y kubectl=1.30.x-00

六、常见问题

  • 版本不匹配:kubelet 和 kubeadm 必须同版本
  • 容器运行时:Docker / containerd 一般不需升级
  • CNI 插件:Calico / Flannel 通常兼容,但建议查看官方说明

如果你能告诉我:

  • Debian 版本(11 / 12)
  • 当前 K8s 版本
  • 是单节点还是多节点集群

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

0 踩