此次升級是 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
