仅需4步,轻松升级K3s集群!
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
Rancher 2.4是Rancher目前最新的版本,在这一版本中你可以通过Rancher UI对K3s集群进行升级管理。
K3s是一个轻量级Kubernetes发行版,借助它你可以几分钟之内设置你的开发Kubernetes环境。它非常适用于生产用例,主要用于IoT和Edge设备。
在Rancher 2.4中,你可以导入K3s集群并且可以通过Rancher本身对其进行升级管理。在本篇教程中,我们将了解如何在一个正在运行的K3s集群上执行实时升级。
Step1:创建K3s集群
在执行升级之前,我们需要启动一个K3s集群。在本文中我是在一个CentOS VM上启动的,你可以在任意云上执行这一操作。
登录到VM,并运行以下命令:
**[root@demo3 ~]# curl -sfL [https://get.k3s.io](https://get.k3s.io) | INSTALL_K3S_VERSION="v1.0.1" sh -s -** [INFO] Using v1.0.1 as release [INFO] Downloading hash [https://github.com/rancher/k3s/releases/download/v1.0.1/sha256sum-amd64.txt](https://github.com/rancher/k3s/releases/download/v1.0.1/sha256sum-amd64.txt) [INFO] Downloading binary [https://github.com/rancher/k3s/releases/download/v1.0.1/k3s](https://github.com/rancher/k3s/releases/download/v1.0.1/k3s) [INFO] Verifying binary download [INFO] Installing k3s to /usr/local/bin/k3s [INFO] Creating /usr/local/bin/kubectl symlink to k3s [INFO] Creating /usr/local/bin/crictl symlink to k3s [INFO] Creating /usr/local/bin/ctr symlink to k3s [INFO] Creating killall script /usr/local/bin/k3s-killall.sh [INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh [INFO] env: Creating environment file /etc/systemd/system/k3s.service.env [INFO] systemd: Creating service file /etc/systemd/system/k3s.service [INFO] systemd: Enabling k3s unit Created symlink from /etc/systemd/system/multi-user.target.wants/k3s.service to /etc/systemd/system/k3s.service. [INFO] systemd: Starting k3sAbove will install k3s version **[root@demo3 ~]# kubectl get nodes** NAME STATUS ROLES AGE VERSION demo3 Ready master 5m55s **v1.16.3-k3s.2**
你可以看到我们在VM上已经安装了Kubernetes v1.16.3。
Step2:安装Rancher
为了从Rancher UI中执行升级,必须通过以下命令安装Rancher:
**[root@demo3 ~]# sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher **Unable to find image 'rancher/rancher:latest' locally Trying to pull repository docker.io/rancher/rancher ... latest: Pulling from docker.io/rancher/rancher 5bed26d33875: Pull complete f11b29a9c730: Pull complete 930bda195c84: Pull complete 78bf9a5ad49e: Pull complete fdb587a45dfe: Pull complete 0c3f7647a659: Pull complete 02c5407ca821: Pull complete ebc009758b56: Pull complete 57a6e40f0f6e: Pull complete 30a88d01aca6: Pull complete 76505b705d6f: Pull complete e585ea16af8d: Pull complete 6b069694034e: Pull complete 8c5d309f94d1: Pull complete 8ec56f5fa6c2: Pull complete 75872eb736b7: Pull complete e774fd043162: Pull complete c76d81e7a658: Pull complete 49bf6b83af1c: Pull complete Digest: sha256:248ddca1169e8a4e06babd50e8105cbba0a326f86ec4de3e38d61e8909ffdb4e Status: Downloaded newer image for docker.io/rancher/rancher:latest ef7f9a0d5bca831af19900a6ceafd30daca51e4f951295762cf7516e48d3d742
Step3:在Rancher中导入集群
打开Rancher UI并点击以下按钮导入K3s集群:
复制最后一条命令并在安装了K3s的VM上运行该命令:
**[root@demo3 ~]# curl --insecure -sfL [https://185.136.232.236/v3/import/pxv5g7xswnnqkhl4dx7nrn8swndwshk9g8426lnldrvt7vjvfc2fgr.yaml](https://185.136.232.236/v3/import/pxv5g7xswnnqkhl4dx7nrn8swndwshk9g8426lnldrvt7vjvfc2fgr.yaml) | kubectl apply -f -** clusterrole.rbac.authorization.k8s.io/proxy-clusterrole-kubeapiserver created clusterrolebinding.rbac.authorization.k8s.io/proxy-role-binding-kubernetes-master created namespace/cattle-system created serviceaccount/cattle created clusterrolebinding.rbac.authorization.k8s.io/cattle-admin-binding created secret/cattle-credentials-d6e5b6d created clusterrole.rbac.authorization.k8s.io/cattle-admin created deployment.apps/cattle-cluster-agent created daemonset.apps/cattle-node-agent created
Step4:执行升级
点击三个小点点,并选择【Edit】。选择最新的Kubernetes版本并点击保存。
点击保存之后,你可以看到集群状态从Active变成了Upgrading。
一会儿之后,状态会重新变为Active,你将看到K3s集群升级到了最新版本。
仅需几次点击,我们已经通过Rancher UI直接将导入的K3s集群升级到了v1.17.4版本。
Troubleshooting
社区用户经过实践之后发现K3s集群处于Upgrading的状态会持续很长一段时间。经过Rancher中国的社区技术经理本地操作复现后,给出如下解决方案:
K3s 分为master和agent角色。K3s集群启动成功后,可以导入到Rancher server去纳管。如果Rancher server和K3s master在同一个节点上,在Rancher UI上升级K3s 版本就会出现失败的情况。
此外,由于https://github.com/rancher/k3s-upgrade/blob/v1.18.4+k3s1/scripts/upgrade.sh#L15的逻辑,升级时会grep两个进程,分别是K3s master和Rancher server中的K3s,所以会报错。
如要解决上述问题,需要先将Rancher server 停掉,等待K3s升级成功后,再启动Rancher server。
结 论
Rancher推出的K3s轻巧易用,加上Rancher 2.4对其的支持,升级集群更是易如反掌。当你通过Rancher UI导入K3s集群,Rancher会自动检测并启用带有可用版本列表的升级集群选项。通过这一功能,你可以升级任意K3s集群,无论该集群是自管理还是托管在云上。
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-07-08
本文作者:k3s中文社区
本文来自:“掘金”,了解相关信息可以关注“掘金”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
图文详解:负载均衡健康检查探测
云栖号快速入门:【点击查看更多云产品快速入门】不知道怎么入门?这里分分钟解决新手入门等基础问题,可快速完成产品配置操作! 健康检查探测是根据负载均衡监听中的健康检查配置生成探测脚本,通过ECS云助手在您的ECS实例上执行脚本,获取健康探测结果,用于在您配置后端服务器后提前探测后端服务器的健康状态。 前提条件 您需要满足以下条件,才能对后端服务器进行健康检查探测: 确保您已经授权负载均衡对ECS实例进行健康检查探测,才能使用健康检查探测功能,授权请单击RAM角色授权。 后端服务器必须是VPC类型并且安装了Linux系统和云助手的ECS实例,实例处于running状态,系统默认shell为bash。 负载均衡监听已开启健康检查并且后端服务器组中已经添加ECS实例。 背景信息 健康检查探测相关说明如下: 目前不支持对转发规则的后端服务器进行探测。 由于健康检查探测和实际健康检查上报采用了不同的链路,所以最终的结果可能不完全一致,探测为用户提供健康检查配置上的建议,而健康检查以配置完成后实际结果为准。 操作步骤 1.登录负载均衡管理控制台。2.单击需要对监听的后端服务器进行健康检查探测的实例I...
- 下一篇
利用Makisu构建容器镜像
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 本系列文章深入研究了容器镜像构建的最新技术。我们已经介绍了Podman和Buildah、Img、Kaniko,而这次轮到Makisu了。 Makisu是另一个开源镜像构建工具,由Uber的工程团队构思而成。像许多其他开源项目一样,Makisu也是基于其他类似技术的不足而开发的。 Makisu尤其专注于优化镜像构建时间和大小。 使用Makisu 类似Kaniko,Makisu不会调用容器并依据Dockerfile指令在容器中构建镜像。它既可以作为独立的二进制文件在本地运行,也可以作为沙箱运行在容器内。但是,由于它无法执行RUN Dockerfile指令,因此它作为独立二进制文件的用途受到限制。当然,你也不希望Makisu通过RUN指令更改主机的本地文件系统内容! 实际上Makisu不允许更改本地文件;你需要指定标志--modifyfs = true,以允许使用命令对文件系统进行更改。但请注意,如果使用--modifyfs = true运行独立的Makisu二进制文件,最终将删除主机的许多r...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS6,CentOS7官方镜像安装Oracle11G
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启