下面按常见生产场景给你一个清晰、可落地的 Debian 上升级 Kubernetes(kubeadm 集群)流程。如果你用的是 k3s / microk8s / 云托管 K8s,方式会不同,可以再告诉我。
kubectl version --short
kubeadm version
✅ 必须逐个 minor 版本升级
1.26 → 1.27 → 1.28
不能跨版本(如 1.26 → 1.29)
官方对照表: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/upgrade/
# 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
sudo apt update
apt-cache policy kubeadm
例如升级到 1.28.4:
sudo apt install -y kubeadm=1.28.4-1.1 --allow-downgrades
sudo kubeadm upgrade plan
sudo kubeadm upgrade apply v1.28.4
sudo apt install -y kubelet=1.28.4-1.1 kubectl=1.28.4-1.1
sudo systemctl restart kubelet
kubectl drain <node-name> --ignore-daemonsets
sudo apt install -y kubeadm=1.28.4-1.1
sudo kubeadm upgrade node
sudo apt install -y kubelet=1.28.4-1.1
sudo systemctl restart kubelet
kubectl uncordon <node-name>
kubectl get nodes
kubectl get pods -A
确认:
✅ 不要同时升级 Docker / containerd ✅ 若使用 containerd:
containerd --version
必要时同步升级
✅ Debian 12 推荐:
sudo swapoff -a
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.28.4+k3s1 sh -
你可以告诉我:
我可以给你精确到命令的升级方案。