一、升级前准备
/etc/kubernetes/目录、/root/.kube/config文件),可使用etcdctl snapshot save命令备份etcd数据,防止升级过程中数据丢失。kubectl get nodes确认所有节点状态为Ready,使用kubectl get pods --all-namespaces检查所有Pod状态为Running,确保集群无未决问题(如Pod异常、节点故障)。cat <<EOF > /etc/yum.repos.d/kubernetes.repo添加仓库配置)。二、升级Master节点
sudo yum update -y kubeadm),或通过下载二进制文件手动替换(如wget https://dl.k8s.io/release/v<target-version>/bin/linux/amd64/kubeadm,赋予执行权限后移动到/usr/local/bin/)。kubeadm upgrade plan命令,查看集群是否满足升级条件(如依赖组件版本、节点状态),并获取可升级的目标版本列表。kubeadm upgrade apply v<target-version>命令升级Master节点的控制平面组件(包括kube-apiserver、kube-controller-manager、kube-scheduler),命令会自动下载并安装新版本组件。sudo yum remove -y kubelet kubectl),安装新版本(sudo yum install -y kubelet-<target-version> kubectl-<target-version>),重启kubelet服务(sudo systemctl daemon-reload && sudo systemctl restart kubelet)。kubectl drain <node-name> --ignore-daemonsets命令将节点标记为不可调度并驱逐所有Pod,升级完成后再使用kubectl uncordon <node-name>恢复调度。三、升级Worker节点
kubeadm upgrade node命令升级节点上的Kubernetes组件(如kubelet配置),或手动升级kube-proxy等组件(通过YUM或下载二进制文件)。kubectl drain <node-name> --ignore-daemonsets命令腾空节点,升级完成后再恢复调度。四、升级后验证
kubectl get nodes确认所有节点状态为Ready,使用kubectl get pods --all-namespaces检查所有Pod状态为Running,确保集群恢复正常。journalctl -u kubelet、journalctl -u kube-apiserver等命令检查Kubernetes组件日志,确认无错误或警告信息。curl访问应用接口)。五、注意事项