Kubernetes跨版本升级1.19到1.22

1. 前言

Kubernetes是不可以进行跨版本升级的,只能一个版本一个版本的升级,本文从1.19版本升级到1.22版本。
主要参考官网文档:Upgrading kubeadm clusters

2. 从1.19升级到1.20

2.1 master节点升级

2.1.1 使用yum list 查看可升级版本

yum list --showduplicates kubeadm --disableexcludes=kubernetes
# find the latest 1.20 version in the list
# it should look like 1.20.x-0, where x is the latest patch

2.1.2 下载安装kubeadm

下载:

# replace x in 1.20.x-0 with the latest patch version
yum install -y kubeadm-1.20.x-0 --disableexcludes=kubernetes

验证:

kubeadm version

排空master节点:
通过将节点标记为不可调度并驱逐工作负载来准备节点进行维护,将pod优雅的中止

kubectl drain <master-name> --ignore-daemonsets

验证升级计划:

kubeadm upgrade plan

选择要升级的版本:

sudo kubeadm upgrade apply v1.20.x

在这里插入图片描述
更新Kubeadm:
同时更新apiserver 、controller-manager、scheduler、proxy、etcd、coredns

sudo kubeadm upgrade node

2.1.3 下载安装kubelet & kubectl

安装:

yum install -y kubelet-1.20.x-0 kubectl-1.20.x-0 --disableexcludes=kubernetes

重启:

sudo systemctl daemon-reload
sudo systemctl restart kubelet

2.2 升级node节点

2.2.1 排空node节点

在master上执行:

kubectl drain <node-name> --ignore-daemonsets

2.2.2 下载kubeadm

在node节点上执行:

yum install -y kubeadm-1.20.x-0 --disableexcludes=kubernetes

更新Kubeadm:

sudo kubeadm upgrade node

2.2.3 升级node节点上的kubelet & kubectl

在node节点上执行:

yum install -y kubelet-1.20.x-0 kubectl-1.20.x-0 --disableexcludes=kubernetes

重启:

sudo systemctl daemon-reload
sudo systemctl restart kubelet

2.2.4 取消对节点的保护

在master节点上运行:
通过将节点标记为可调度,让节点重新上线

kubectl uncordon <node-to-drain>

2.3 验证

kubectl get nodes

在这里插入图片描述

3. 从1.20升级到1.21

同上步骤只需更改版本号

4. 从1.21升级到1.22

同上步骤只需更改版本号

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值