k8s 版本升级与证书续签方案

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

  

原文地址:https://www.cnblogs.com/lixinliang/p/13141656.html