如何通过Kubeadm升级k8s集群(1.17-1.19)
之前维护的集群由于是1.17的,那么现在由于要部署一个服务需要的特性不支持,那么需要升级到1.19.4版本,现将过程记录下来
由于kubeadm不能跨大版本升级,那么需要一个版本版本的升级,需要1.17->1.18->1.19,下面记录一下如何从1.17升级到1.18
master升级
#列出要升级的补丁,我是从1.17.4升级到1.18.20
yum list --showduplicates kubeadm --disableexcludes=kubernetes
# 升级kubeadm
yum install -y kubeadm-1.18.20-0 --disableexcludes=kubernetes
# 验证kubeadm
kubeadm version
# 验证升级计划
kubeadm upgrade plan
# 进行升级
sudo kubeadm upgrade apply v1.18.20
# 成功以后会有下面的提示
[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.18.x". Enjoy!
[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so
# 如果有多个master需要在其他master执行
kubeadm upgrade node v1.18.20
# 驱逐master节点
kubectl drain ${k8s-master-node} --ignore-daemonsets
# 升级Kubelet和kubectl
yum install -y kubele