升级版本最好是逐步去升级,不要跨越多个大版本,可能会出错
大体流程:
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