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