温馨提示×

debian怎么升级k8s版本

小樊
41
2026-09-11 06:06:44
栏目: 智能运维

在 Debian 上“升级 Kubernetes 版本”通常分为控制平面(master)工作节点(node)两部分,而且必须小版本逐级升级(例如 1.26 → 1.27 → 1.28,不能跨大版本)。

下面以 kubeadm 安装方式(最常见)为例说明。


一、升级前准备

1. 查看当前版本

kubectl version
kubeadm version

2. 确认可升级路径

  • 一次只升级 一个次要版本
  • 例如:1.28.x → 1.29.x

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

二、在 Debian 上升级 kubeadm / kubelet / kubectl

1. 更新 apt 源

Kubernetes 官方源示例:

sudo apt-get update

2. 查看可用版本

apt-cache policy kubeadm

3. 升级 kubeadm(控制平面先执行)

sudo apt-get install -y kubeadm=1.29.x-00 kubelet=1.29.x-00 kubectl=1.29.x-00

验证:

kubeadm version

三、升级控制平面(Master)

1. 预检查

sudo kubeadm upgrade plan

2. 执行升级

sudo kubeadm upgrade apply v1.29.x

3. 重启 kubelet

sudo systemctl daemon-reload
sudo systemctl restart kubelet

四、升级工作节点(Node)

在每个 node 上操作:

1. 升级 kubeadm

sudo apt-get install -y kubeadm=1.29.x-00

2. 驱逐节点(在 master 上)

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

3. 升级节点

sudo kubeadm upgrade node

4. 升级 kubelet / kubectl

sudo apt-get install -y kubelet=1.29.x-00 kubectl=1.29.x-00
sudo systemctl daemon-reload
sudo systemctl restart kubelet

5. 恢复节点调度

kubectl uncordon <node-name>

五、验证升级结果

kubectl get nodes
kubectl version

六、非 kubeadm 安装的情况

如果你是用:

  • k3scurl -sfL https://get.k3s.io | sh -s - --version v1.29.x
  • microk8ssudo snap refresh microk8s --channel=1.29/stable
  • 二进制手动安装:需手动替换二进制文件

七、常见注意事项

  • ✅ 不要跨版本升级
  • ✅ 先升级 master,再升级 node
  • ✅ 升级前确保集群健康
  • ❌ 不要同时重启多个 master

如果你能补充:

  • k8s 当前版本
  • 安装方式(kubeadm / k3s / 二进制)
  • Debian 版本

我可以给你精确命令

0