温馨提示×

怎样升级debian的k8s

小樊
46
2026-10-05 06:18:05
栏目: 智能运维

在 Debian 上“升级 k8s”通常包含两部分:

  1. 升级操作系统(Debian)本身(可选但常见)
  2. 升级 Kubernetes 集群(kubeadm / kubelet / kubectl)

下面按**最常见场景(kubeadm 部署的集群)**说明。


一、准备工作(非常重要)

1. 查看当前版本

kubectl version --short
kubelet --version

2. 确认升级路径

✅ 只能一个个小版本升级

1.26 → 1.27 → 1.28 → 1.29

❌ 不能跨多个大版本(如 1.25 → 1.29)

官方升级说明:

kubeadm upgrade plan

3. 备份(生产必做)

etcdctl snapshot save snapshot.db

或用 Velero 备份集群资源。


二、升级 Debian 系统(可选)

sudo apt update
sudo apt upgrade -y
sudo reboot

⚠️ 避免在 Master 节点同时升级 OS 和 K8s,建议分开操作。


三、升级 Kubernetes(kubeadm 集群)

1. 添加新版本 apt 源

以升级到 1.29 为例:

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | \
  sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /" | \
  sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update

2. 在 Master 节点升级控制平面

sudo apt install -y kubeadm=1.29.x-00
sudo kubeadm upgrade plan
sudo kubeadm upgrade apply v1.29.x

升级 kubelet:

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

3. 升级 Worker 节点

在 Master 上驱逐节点:

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

在 Worker 上:

sudo apt install -y kubeadm=1.29.x-00
sudo kubeadm upgrade node
sudo apt install -y kubelet=1.29.x-00
sudo systemctl restart kubelet

回到 Master:

kubectl uncordon <node-name>

四、验证

kubectl get nodes
kubectl version --short

五、如果你不是 kubeadm 部署的

部署方式 升级方式
k3s `curl -sfL https://get.k3s.io
microk8s sudo snap refresh microk8s --channel=1.29/stable
二进制 手动替换 kubelet / apiserver 等

六、常见问题

Q:能跨版本升级吗?
❌ 不行,必须逐步升级。

Q:升级会影响 Pod 吗?
会,节点升级时会驱逐 Pod。

Q:Debian 12 支持最新 K8s 吗?
✅ 支持,推荐 Debian 12 + K8s 1.28/1.29。


如果你能告诉我:

  • Debian 版本
  • K8s 当前版本
  • 部署方式(kubeadm / k3s / 云厂商)

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

0 踩