一、注意事项
• 升级前必须备份所有组件及数据,例如etcd
• 千万不要跨小版本进行升级,例如从1.16升级到1.19,Kubernetes默认向前兼容两个版本
二、升级管理节点:
2.1.查找最新版本号
yum list --showduplicates kubeadm --disableexcludes=kubernetes
--disableexcludes=kubernetes #表示只用kubernetes的yum仓库
2.2.升级kubeadm
yum install -y kubeadm-1.20.0-0 --disableexcludes=kubernetes
kubeadm已升级到1.20.0版本
2.3.驱逐node上的pod,且不可调度
kubectl drain k8s-master --ignore-daemonsets
2.4.检查集群是否可以升级,并获取可以升级的版本
kubeadm upgrade plan
2.5.执行升级
kubeadm upgrade apply v1.20.0
拉取新的镜像
2.6.取消不可调度
kubectl uncordon k8s-master
2.7.升级kubelet和kubectl
yum install -y kubelet-1.20.0-0 kubectl-1.20.0-0 --disableexcludes=kubernetes
2.8.重启kubelet
systemctl daemon-reload
systemctl restart kubelet
升级成功
三、升级工作节点
3.1.升级kubeadm
yum install -y kubeadm-1.20.0-0 --disableexcludes=kubernetes
3.2.驱逐node上的pod,且不可调度
kubectl drain k8s-node1 --ignore-daemonsets
3.3.升级kubelet配置
kubeadm upgrade node
3.4.升级kubelet和kubectl
yum install -y kubelet-1.20.0-0 kubectl-1.20.0-0 --disableexcludes=kubernetes
3.5.重启kubelet
systemctl daemon-reload
systemctl restart kubelet
3.6.取消不可调度,节点重新上线
kubectl uncordon k8s-node1