下面按常见场景给你讲一下在 Debian 上升级 Kubernetes(K8s) 的标准做法,适用于 kubeadm 部署的集群(最常见)。
kubectl version
kubeadm version
apt-cache policy kubeadm
⚠️ 官方建议:一次只升级一个小版本(如 1.28 → 1.29)
# etcd 备份(控制平面节点)
ETCDCTL_API=3 etcdctl snapshot save snap.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-get update
例如升级到 1.29.0:
sudo apt-get install -y kubeadm=1.29.0-00 kubelet=1.29.0-00 kubectl=1.29.0-00
sudo kubeadm upgrade plan
sudo kubeadm upgrade apply v1.29.0
sudo systemctl daemon-reload
sudo systemctl restart kubelet
kubectl drain <node-name> --ignore-daemonsets
sudo apt-get update
sudo apt-get install -y kubeadm=1.29.0-00 kubelet=1.29.0-00
sudo kubeadm upgrade node
sudo systemctl restart kubelet
kubectl uncordon <node-name>
kubectl get nodes
kubectl get pods -A
所有节点 VERSION 应一致。
步骤一样,只是:
确认源正确:
cat /etc/apt/sources.list.d/kubernetes.list
应包含:
deb https://apt.kubernetes.io/ kubernetes-xenial main
查看日志:
journalctl -u kubelet -f
apt upgrade 全部升级如果你愿意,可以告诉我:
我可以给你定制升级命令。