在 CentOS 上升级 Kubernetes 的标准流程
一 升级前准备
kubectl get nodes、kubectl versionyum list --showduplicates kubeadm --disableexcludes=kubernetes二 控制平面升级步骤
kubectl cordon <master-node>kubectl drain <master-node> --ignore-daemonsets --forceyum list --showduplicates kubeadm --disableexcludes=kubernetesyum install -y kubeadm-<version> --disableexcludes=kuberneteskubeadm upgrade plan(确认可升级到的目标版本与组件)kubeadm upgrade apply <target-version>(按提示完成)yum install -y kubelet-<version> kubectl-<version> --disableexcludes=kubernetessystemctl daemon-reload && systemctl restart kubeletkubectl uncordon <master-node>kubectl get nodes、kubectl get pods -n kube-system 状态均为 Ready/Running。三 工作节点升级步骤
kubectl cordon <worker-node>、kubectl drain <worker-node> --ignore-daemonsets --forceyum install -y kubeadm-<version> kubelet-<version> kubectl-<version> --disableexcludes=kubernetessystemctl daemon-reload && systemctl restart kubeletkubectl uncordon <worker-node>kubectl get nodes、kubectl get pods -n kube-system四 升级后验证与常见问题处理
kubectl version 输出中 Client 与 Server 版本匹配或处于受支持范围;必要时同步升级 kubectl。kubectl get pods -n kube-system -o wide(如 kube-apiserver、kube-controller-manager、kube-scheduler、kube-proxy、CoreDNS、etcd)kubeadm upgrade plan 与备份进行回退。五 全新安装与升级的区别提示
kubeadm init 初始化控制平面,部署 CNI 网络插件,最后 kubeadm join 加入工作节点。