此次升级是 1.15 版本升级至 1.16 升级 master 查找最新的稳定的1.16版本 (master01 执行) yum list --showduplicates kubeadm --disableexcludes=kubernetes 升级控制平面节点 升级第一个控制平面节点 1. 在您的第一个控制平面节点上,升级kubeadm (master01 执行) yum install -y kubeadm-1.16.x-0 --disableexcludes=kubernetes 2.确认下载正常并且具有预期的版本 (master01 执行) kubeadm version 3.排空控制平面节点: (master01 执行) kubectl drain $MASTER --ignore-daemonsets 4.在控制平面节点上,运行:(master01 执行) kubeadm upgrade plan 5.选择要升级到的版本,然后运行相应的命令。例如:(同时完成证书更新)(master01 执行) kubeadm upgrade apply --certificate-renewal v1.16.0 6.取消控制平面节点的排空策略 (master01 执行、$MASTER 为master01) kubectl uncordon $MASTER 另外两个控制平面: (不然会报错) (master01 执行) 1. 添加annotate: kubectl annotate node k8s-master02 kubeadm.alpha.kubernetes.io/cri-socket=/var/run/dockershim.sock kubectl annotate node k8s-master03 kubeadm.alpha.kubernetes.io/cri-socket=/var/run/dockershim.sock master02 和master03 上分别执行: kubeadm upgrade node --certificate-renewal 升级kubelet和kubectl 1.在所有控制平面节点上升级kubelet和kubectl: (master01、mastere02、master03 上分别执行) yum install -y kubelet-1.16.0-0 kubectl-1.16.0-0 --disableexcludes=kubernetes 2.重新启动kubelet (master01、mastere02、master03 上分别执行) systemctl daemon-reload systemctl restart kubelet 升级 node 节点 升级工作程序节点: 1.在所有工作节点上升级kubeadm (所有node 节点上执行) yum install -y kubeadm-1.16.x-0 --disableexcludes=kubernetes 排空节点 2.通过将节点标记为不可计划并逐出工作负载来准备要维护的节点。跑: ($NODE 为node01) kubectl drain $NODE --ignore-daemonsets 升级kubelet配置 1.调用以下命令: (所有node 节点上执行) kubeadm upgrade node 升级kubelet和kubectl (所有node 节点上执行) 1. 在所有工作节点上升级kubelet和kubectl: yum install -y kubelet-1.16.x-0 kubectl-1.16.x-0 --disableexcludes=kubernetes 2.重新启动kubelet (所有node 节点上执行) systemctl daemon-reload systemctl restart kubelet 3. 通过将节点标记为可调度来使其重新联机 kubectl uncordon $NODE 验证集群的状态 kubectl get nodes 重新配置 用户的配置文件 cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 验证集群证书 kubeadm alpha certs check-expiration