升级版本最好是逐步去升级,不要跨越多个大版本,可能会出错
大体流程:
1.先确定升级版本
2.升级kubeadm
3.驱逐节点
4.升级kubelet和kubectl
5.重启kubelet服务
6.恢复节点,使其上线
1.查看现版本:升级版本
bash
kubectl get nodes
当前版本1.16.2

2.执行如下命令确定升级版本
bash
yum list --showduplicates kubeadm --disableexcludes=kubernetes

3.升级kubeadm
这里选择升级到1.17版本,升级一个版本
bash
yum install -y kubeadm-1.17.2-0 --disableexcludes=kubernetes

4.查看kubeadm版本升级过了
bash
kubeadm version

5.验证升级计划
检查当前集群是否可被升级,可升级到1.17.17
bash
kubeadm upgrade plan

6.将目标升级到该版本
不升级etcd
bash
kubeadm upgrade apply v1.17.2 --etcd-upgrade=false

7.当前节点标记为不可调度,并驱逐节点上的Pod
bash
kubectl drain master --ignore-daemonsets


8.升级kubelet和kubectl组件
bash
yum -y install kubelet-1.17.2-0 kubectl-1.17.2-0 --disableexcludes=kubernetes

9.重启kubelet
bash
systemctl daemon-reload
systemctl restart kubelet

10.恢复当前节点上的Pod调度,使其上线
bash
kubectl uncordon master
11.验证master版本已确认升级
