公司使用的kubernetes测试环境,已经很久没有升级了,1.16.3版本已经很旧了,需要升级到1.20.6进行测试。

先决条件#

  • 保证cluster.yml缺少system_images的说明和配置。如果您使用的是RKE 不支持的 Kubernetes 版本,则要保证只在system——images中说明 Kubernetes 版本号。详情请参考Kubernetes 版本优先级。
  • 保证工作目录中有管理Kubernetes 集群状态所需的文件,不同版本的 RKE 使用不同的文件管理 Kubernetes 集群状态。

    • RKE v0.2.0 及更新版本

      RKE v0.2.0 及以上的版本使用cluster.rkestate文件管理集群状态。cluster.rkestate文件中含有集群的当前状态,包括 RKE 配置和证书等信息。

      这个文件和cluster.yml位于同一目录下。

      cluster.rkestate文件非常重要,控制集群和升级集群的时候都需要用到这个文件,请妥善保管该文件。

    • RKE v0.2.0 之前的版本

      请保证工作目录中含有kube_config_cluster.yml文件

      RKE 以密文的方式保存 Kubernetes 集群状态。编辑集群状态时,RKE 拉取密文,变更集群状态,然后将变更后的状态以密文的方式保存到kube_config_cluster.yml文件中。如果您使用的是 RKE v0.2.0 之前的版本,请妥善保管该文件。

kubernetes 当前版本 期望升级的版本
版本 1.16.3 1.20.6

kubernetes集群情况

节点 IP docker版本 系统版本
master 10.5.38.228 18.9.6 centos7.6
master 10.5.38.239 18.9.6 centos7.6
master 10.5.38.140 18.9.6 centos7.6
worker 10.5.38.157 18.9.6 centos7.6
worker 10.5.38.223 18.9.6 centos7.6

查看当前kubernetes 集群版本和kubectl版本

[rancher@xr-prelocus ~]$ kubectl version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-13T11:23:11Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
The connection to the server localhost:8080 was refused - did you specify the right host or port?

检查当前RKE版本及支持的kubernetes 版本

centos@xr-prelocus:[/home/centos]rke --version
rke version v1.0.0
centos@xr-prelocus:[/home/centos]rke config --list-version --all
v1.14.9-rancher1-1
v1.15.6-rancher1-2
v1.16.3-rancher1-1

由于当前的RKE版本不支持1.20.6版本,需要到

https://github.com/rancher/rke/releases下载支持1.20.6版本的rke

同时需要到https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#server-binaries-1下载kubernetes的客户端命令行工具kubectl

操作命令如下

centos@xr-prelocus:[/home/centos]ls
rke_linux-amd64 (3)
centos@xr-prelocus:[/home/centos]mv rke_linux-amd64\ \(3\) rke
centos@xr-prelocus:[/home/centos]ls
rke
//添加执行权限
centos@xr-prelocus:[/home/centos]chmod +x rke
centos@xr-prelocus:[/home/centos]ls
rke
//提升用户权限
centos@xr-prelocus:[/home/centos]sudo -i
//备份原RKE命令行
[root@xr-prelocus centos]# mv /bin/rke /bin/rke.bak
//移动RKE到/bin目录
[root@xr-prelocus centos]# mv rke /bin/
[root@xr-prelocus centos]# exit
exit
//退出root账户,查看rke版本和支持的kubernetes版本
centos@xr-prelocus:[/home/centos]rke --version
rke version v1.2.8
centos@xr-prelocus:[/home/centos]rke config --list-version --all
v1.19.10-rancher1-1
v1.18.18-rancher1-2
v1.17.17-rancher2-3
v1.20.6-rancher1-1

检查三个文件是否存在cluster.yml  cluster.rkestate kube_config_cluster.yml

[rancher@xr-prelocus ~]$ ls cluster.rkestate kube_config_cluster.yml cluster.yml
cluster.rkestate  cluster.yml  kube_config_cluster.yml

修改cluster.yml 文件kubernetes的版本为1.20.6

开始升级

[rancher@xr-prelocus ~]$ rke up
INFO[0000] Running RKE version: v1.2.8
INFO[0000] Initiating Kubernetes cluster
INFO[0000] [certificates] GenerateServingCertificate is disabled, checking if there are unused kubelet certificates
INFO[0000] [certificates] Generating admin certificates and kubeconfig
INFO[0000] Successfully Deployed state file at [./cluster.rkestate]
INFO[0000] Building Kubernetes cluster
INFO[0000] [dialer] Setup tunnel for host [10.5.38.223]
INFO[0000] [dialer] Setup tunnel for host [10.5.38.239]
INFO[0000] [dialer] Setup tunnel for host [10.5.38.140]
INFO[0000] [dialer] Setup tunnel for host [10.5.38.157]
INFO[0000] [dialer] Setup tunnel for host [10.5.38.52]
INFO[0000] [dialer] Setup tunnel for host [10.5.38.228]
INFO[0001] [network] No hosts added existing cluster, skipping port check
INFO[0001] [certificates] Deploying kubernetes certificates to Cluster nodes
INFO[0001] Checking if container [cert-deployer] is running on host [10.5.38.223], try #1
INFO[0001] Checking if container [cert-deployer] is running on host [10.5.38.157], try #1
INFO[0001] Checking if container [cert-deployer] is running on host [10.5.38.52], try #1
INFO[0001] Checking if container [cert-deployer] is running on host [10.5.38.228], try #1
INFO[0001] Checking if container [cert-deployer] is running on host [10.5.38.239], try #1
INFO[0001] Checking if container [cert-deployer] is running on host [10.5.38.140], try #1
INFO[0001] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.157], try #1
INFO[0001] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.223], try #1
INFO[0001] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.52], try #1
INFO[0001] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.140], try #1
INFO[0001] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.239], try #1
INFO[0001] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.228], try #1
INFO[0006] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.157], try #1
INFO[0006] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.140], try #1
INFO[0026] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.239]
INFO[0026] Starting container [cert-deployer] on host [10.5.38.239], try #1
INFO[0027] Checking if container [cert-deployer] is running on host [10.5.38.239], try #1
INFO[0031] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.52]
INFO[0031] Starting container [cert-deployer] on host [10.5.38.52], try #1
INFO[0031] Checking if container [cert-deployer] is running on host [10.5.38.52], try #1
INFO[0032] Checking if container [cert-deployer] is running on host [10.5.38.239], try #1
INFO[0032] Removing container [cert-deployer] on host [10.5.38.239], try #1
INFO[0033] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.140]
INFO[0035] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.157]
INFO[0036] Checking if container [cert-deployer] is running on host [10.5.38.52], try #1
INFO[0036] Removing container [cert-deployer] on host [10.5.38.52], try #1
INFO[0037] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.228]
INFO[0037] Starting container [cert-deployer] on host [10.5.38.228], try #1
INFO[0037] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.223]
INFO[0037] Starting container [cert-deployer] on host [10.5.38.223], try #1 

持续不到10分钟左右就升级完成

INFO[1057] [worker] Now checking status of node 10.5.38.223, try #1
INFO[1057] [worker] Successfully upgraded Worker Plane..
INFO[1057] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.52]
INFO[1057] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.223]
INFO[1057] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.140]
INFO[1057] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.157]
INFO[1057] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.239]
INFO[1057] Starting container [rke-log-cleaner] on host [10.5.38.52], try #1
INFO[1057] Starting container [rke-log-cleaner] on host [10.5.38.223], try #1
INFO[1057] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.228]
INFO[1058] Starting container [rke-log-cleaner] on host [10.5.38.239], try #1
INFO[1058] Starting container [rke-log-cleaner] on host [10.5.38.157], try #1
INFO[1058] [cleanup] Successfully started [rke-log-cleaner] container on host [10.5.38.223]
INFO[1058] Removing container [rke-log-cleaner] on host [10.5.38.223], try #1
INFO[1058] Starting container [rke-log-cleaner] on host [10.5.38.228], try #1
INFO[1058] [cleanup] Successfully started [rke-log-cleaner] container on host [10.5.38.52]
INFO[1058] [cleanup] Successfully started [rke-log-cleaner] container on host [10.5.38.239]
INFO[1058] Removing container [rke-log-cleaner] on host [10.5.38.239], try #1
INFO[1058] [remove/rke-log-cleaner] Successfully removed container on host [10.5.28.223]
INFO[1058] Starting container [rke-log-cleaner] on host [10.5.38.140], try #1
INFO[1058] [cleanup] Successfully started [rke-log-cleaner] container on host [10.5.38.157]
INFO[1058] Removing container [rke-log-cleaner] on host [10.5.38.157], try #1
INFO[1058] Removing container [rke-log-cleaner] on host [10.5.38.52], try #1
INFO[1058] [remove/rke-log-cleaner] Successfully removed container on host [10.5.38.52]
INFO[1058] [remove/rke-log-cleaner] Successfully removed container on host [10.5.38.239]
INFO[1059] [cleanup] Successfully started [rke-log-cleaner] container on host [10.5.38.140]
INFO[1059] Removing container [rke-log-cleaner] on host [10.5.38.140], try #1
INFO[1059] [remove/rke-log-cleaner] Successfully removed container on host [10.5.38.157]
INFO[1059] [cleanup] Successfully started [rke-log-cleaner] container on host [10.5.38.228]
INFO[1059] Removing container [rke-log-cleaner] on host [10.5.38.228], try #1
INFO[1059] [remove/rke-log-cleaner] Successfully removed container on host [10.5.38.140]
INFO[1059] [remove/rke-log-cleaner] Successfully removed container on host [10.5.38.228]
INFO[1059] [sync] Syncing nodes Labels and Taints
INFO[1059] [sync] Successfully synced nodes Labels and Taints
INFO[1059] [network] Setting up network plugin: calico
INFO[1059] [addons] Saving ConfigMap for addon rke-network-plugin to Kubernetes
INFO[1060] [addons] Successfully saved ConfigMap for addon rke-network-plugin to Kubernetes
INFO[1060] [addons] Executing deploy job rke-network-plugin
INFO[1100] [addons] Setting up coredns
INFO[1100] [addons] Saving ConfigMap for addon rke-coredns-addon to Kubernetes
INFO[1100] [addons] Successfully saved ConfigMap for addon rke-coredns-addon to Kubernetes
INFO[1100] [addons] Executing deploy job rke-coredns-addon
INFO[1110] [addons] CoreDNS deployed successfully
INFO[1110] [dns] DNS provider coredns deployed successfully
INFO[1110] [addons] Setting up Metrics Server
INFO[1110] [addons] Saving ConfigMap for addon rke-metrics-addon to Kubernetes
INFO[1110] [addons] Successfully saved ConfigMap for addon rke-metrics-addon to Kubernetes
INFO[1110] [addons] Executing deploy job rke-metrics-addon
INFO[1120] [addons] Metrics Server deployed successfully
INFO[1120] [ingress] Setting up nginx ingress controller
INFO[1120] [addons] Saving ConfigMap for addon rke-ingress-controller to Kubernetes
INFO[1120] [addons] Successfully saved ConfigMap for addon rke-ingress-controller to Kubernetes
INFO[1120] [addons] Executing deploy job rke-ingress-controller
INFO[1130] [ingress] ingress controller nginx deployed successfully
INFO[1130] [addons] Setting up user addons
INFO[1130] [addons] no user addons defined
INFO[1130] Finished building Kubernetes cluster successfully 

请确认升级最后一样是“Finished building Kubernetes cluster successfully ”字样,表明升级完成。

使用kubernetes配套客户端kubectl

centos@xr-prelocus:[/home/centos]ls
kubectl
//添加执行权限
centos@xr-prelocus:[/home/centos]chmod +x kubectl
centos@xr-prelocus:[/home/centos]ls
kubectl
centos@xr-prelocus:[/home/centos]sudo -i
//备份旧的,使用新的
root@xr-prelocus:[/root]which kubectl
/bin/kubectl
root@xr-prelocus:[/root]mv /bin/kubectl /bin/kubectl.bak
root@xr-prelocus:[/root]mv /home/centos/kubectl /bin/
//查看kubectl版本
[rancher@xr-prelocus ~]$ kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.6", GitCommit:"8a62859e515889f07e3e3be6a1080413f17cf2c3", GitTreeState:"clean", BuildDate:"2021-04-15T03:28:42Z", GoVersion:"go1.15.10", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.6", GitCommit:"8a62859e515889f07e3e3be6a1080413f17cf2c3", GitTreeState:"clean", BuildDate:"2021-04-15T03:19:55Z", GoVersion:"go1.15.10", Compiler:"gc", Platform:"linux/amd64"}
[rancher@xr-prelocus ~]$ kubectl get nodes
NAME          STATUS   ROLES                      AGE    VERSION
10.5.38.140   Ready    controlplane,etcd,worker   436d   v1.20.6
10.5.38.157   Ready    worker                     427d   v1.20.6
10.5.38.223   Ready    worker                     341d   v1.20.6
10.5.38.228   Ready    controlplane,etcd,worker   478d   v1.20.6
10.5.38.239   Ready    controlplane,etcd,worker   287d   v1.20.6
10.5.38.52    Ready    worker                     341d   v1.20.6
验证版本为1.20.6

到此,RKE升级kubernetes成功完成,如有疑问请联系。

RKE 升级kubernetes 版本相关推荐

  1. 如何优雅升级 Kubernetes 集群的 Docker 和 Containerd 版本

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 前言 公司用的k8s集群是"多环境合一"的方式,集群流量入口也摒弃了常见的traefik和in ...

  2. RKE部署Kubernetes集群

    安装docker 在各个节点建立自定义账户,使其可以用命令操作docker useradd <user_name> passwd <user_name> usermod -aG ...

  3. 使用Rancher的RKE部署Kubernetes要点

    简要说明: RKE (Rancher Kubernetes Engine)是RancherLabs提供的一个工具,可以在裸机.虚拟机.公私有云上快速安装Kubernetes集群.整个集群的部署只需要一 ...

  4. CentOS升级内核版本_linux升级内核版本_Redhat升级内核版本

    CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker.Kubernetes 不稳定 我们使用ELRepo做内核升级,这是用于Enterprise Linux ...

  5. gke下载_我们如何在GKE上升级Kubernetes

    gke下载 Gojek Long阅读 (Gojek Long Reads) If you're running Kubernetes on GKE, chances are there's alrea ...

  6. RKE安装Kubernetes

    使用RKE部署kubernetes集群 一.基本环境准备 1.1 环境准备一 这里个人觉得可以和kubeadm的步骤一致,不过还是按照1.2配置的官方要求 1.关闭防火墙 systemctl stop ...

  7. helm v2升级v3版本遇到的疑难杂症

    Helm V3 与 V2 版本架构变化较大,数据迁移也比较麻烦,官方为了解决数据迁移问题,提供一个 helm-2to3 工具,本文基于 helm-2to3 工具来迁移 V2 版本中的数据. 注意:He ...

  8. PHPNow升级PHP版本为5.3.5的方法

    在WIN上有时候需要测试一些PHP程序,又不会自行独立配置环境,那么PHPNow是非常好的选择,这篇文章主要为大家分享下如果将phpnow的php版本升级为5.3.5 在WIN上有时候需要测试一些PH ...

  9. linux中更新python_linux下面升级 Python版本并修改yum属性信息

    最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...

最新文章

  1. 程序员因开发速度太慢而遭公司起诉,索赔金额高达90万!
  2. 一文带你了解卷积神经网络基础,建议收藏
  3. python打印自动换行如何解决_解决python DataFrame 打印结果不换行问题
  4. 《Java从小白到大牛》之第11章 对象
  5. 文章id 文章标题点击量php,WordPress如何通过文章ID获取文章标题等信息
  6. 中专计算机专业教研方案,教研活动实施方案电脑基础知识IT计算机专业资料-教研活动实施方案.pdf...
  7. 解一元一次方程的那些坑(记洛谷P1022题RE的经历,Java语言描述)
  8. 计算机考试换机密码,Ami换机,让你轻松转移手机资料!
  9. ajax json的参数,java ajax json参数
  10. DROP TABLE ** CASCADE CONSTRAINTS PURGE删除表的时候级联删除从表外键
  11. x/(x+1)=ln(x+1)=x
  12. 【GT】Assembler 源码解读及使用 !Cocos Creator!
  13. 微信小程序云开发-树洞小程序Treehole(畅所欲言/交易广场实现)
  14. 最新百度网盘不限速教程(油猴)
  15. PDF文件如何添加页面或插入其他PDF页面
  16. 流行和声(2)Major6和弦
  17. laya龙骨换装_FairyGUI - 骨骼动画
  18. c/c++结构体如何判断相等而且是否能相互赋值
  19. 如何让moment根据对应时间显示几秒前、几分钟前、几天前?
  20. ubuntu服务器配置ruby环境(国内傻瓜版)

热门文章

  1. CC2541入门环境搭建
  2. 求解:使用Antv x6引入插件出现‘ToolItem’问题
  3. Python爬取某宝宝商品评论等数据
  4. ScreenMatch适配方案和PxCook配合使用踩坑记录
  5. 3_树莓派机载计算机的硬件资源样例教程——无名创新
  6. 测试工程师常用面试题
  7. audio 标签加入背景音乐谷歌浏览器不能自动播放的问题
  8. -moz-user-select属性
  9. 软件项目管理思维导图
  10. java实现汉字转拼音