Ubuntu 上升级 Kubernetes 的标准流程(kubeadm)
一 升级前准备
kubectl version --short;检查客户端与服务端是否匹配。kubectl drain <node> --ignore-daemonsets --delete-emptydir-data --forcekubectl uncordon <node>unhold 再安装,完成后 hold,避免被系统自动升级波及。二 控制平面升级步骤
sudo apt-mark unhold kubeadmsudo apt-get update && sudo apt-get install -y kubeadm='1.29.2-1.1'sudo apt-mark hold kubeadmkubeadm versionsudo kubeadm upgrade plan(如跨小版本,会提示组件与镜像信息)sudo kubeadm upgrade apply v1.29.2sudo kubeadm upgrade apply v1.29.2 --etcd-upgrade=falsesudo apt-mark unhold kubelet kubectlsudo apt-get install -y kubelet='1.29.2-1.1' kubectl='1.29.2-1.1'sudo apt-mark hold kubelet kubectlsudo systemctl daemon-reload && sudo systemctl restart kubeletkubectl uncordon <master-node>kubeadm upgrade node、升级 kubelet/kubectl、uncordon)。三 工作节点升级步骤
kubectl drain <node> --ignore-daemonsets --delete-emptydir-data --forcesudo apt-mark unhold kubelet kubectlsudo apt-get update && sudo apt-get install -y kubelet='1.29.2-1.1' kubectl='1.29.2-1.1'sudo apt-mark hold kubelet kubectlsudo systemctl daemon-reload && sudo systemctl restart kubeletkubectl uncordon <node>四 升级后验证与常见问题
kubectl get nodes 确认所有节点 Readykubectl get pods -A 检查 kube-system 等关键组件 Runningkubectl version --short 确认客户端与服务端版本在兼容范围内kubeadm config images pullkubectl describe pod <pod> -n kube-system 与 journalctl -u kubelet 定位镜像、权限或资源问题runtime-endpoint: unix:///run/containerd/containerd.sock)kubeadm upgrade rollback;或基于快照/备份恢复,再回退软件包版本并重启 kubelet。