k8s~RKE的方式升级Rancher集群
source link: https://www.cnblogs.com/lori/p/17467086.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
kubectl安装
在主机或者远程访问的笔记本上安装kubectl命令行工具
rancher-cluster.yml(RKE配置文件)
通过RKE创建kubernetes集群,需要预先设置rancher-cluster.yml配置文件,通过这个配置文件安装kubernetes集群,同时可以指定kubernetes的版本。
RKE安装kubernetes集群后,会在RKE二进制文件相同目录下生成kube_config_rancher-cluster.yml文件,复制该配置文件到~/.kube/目录,这个文件在升级集群时会用的到。
查看rke支持的k8s版本
[root@rancher home]# rke config --list-version -all
v1.16.2-rancher1-1
v1.14.8-rancher1-1
v1.15.5-rancher1-2
如果版本太老,是无法安装新版rancher的,还需要先升级RKE,下载rkev1.3.8版本,对基础集群的k8s进行升级
./rke_linux-amd64-1.3.8 up --config=./rke2019/rancher-cluster.yml
升级之后,可以在基础集群上看一下版本
kubectl get nodes
NAME STATUS ROLES AGE VERSION
192.168.0.204 Ready controlplane,etcd,worker 11h v1.18.20
-
在安装了kubectl命令行工具的电脑上打开终端
-
切换路径到RKE二进制文件所在目录,确认rancher-cluster.yml在同一路径下
一 升级前的准备工作
1.1 x509证书问题的产生原因
- x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0"
这是因为 Rancher 把 v2.5.10 以上,或 2.6.x 之后将 go 版本从 1.14 提升到了 1.16。而且,go 1.15 版本开始废弃 CommonName,推荐使用 SAN 证书,参考:https://golang.org/doc/go1.15#commonname 。 如果你的自签名证书中不包含 SANs,就会出现上面的报错。 - 要解决这个问题,有两种方案:
- 方案 1:替换 Rancher HA 证书#
使用一键生成 ssl 自签名证书脚本 重新生成证书,然后参考无需重新搭建集群,轻松替换证书替换 Rancher HA 的证书。 - 方案 2:添加环境变量 GODEBUG=x509ignoreCN=0#
- 更新 Rancher Server ,添加环境变量GODEBUG=x509ignoreCN=0
- 升级业务集群Rancher-agnet 通过extraEnv设置环境变量GODEBUG=x509ignoreCN=0
- 方案 1:替换 Rancher HA 证书#
1.2 x509证书问题的解决
1.2.1 生成集群集群
kubectl set env deployment/rancher -n cattle-system GODEBUG="x509ignoreCN=0"
1.2.2 业务集群升级
export GODEBUG=x509ignoreCN=0
kubectl set env deployment/cattle-cluster-agent -n cattle-system GODEBUG="x509ignoreCN=0"
kubectl set env daemonset/cattle-node-agent -n cattle-system GODEBUG="x509ignoreCN=0"
二 创建ETCD快照备份
替换<SNAPSHOT.db>为您喜欢的快照名称(例如upgrade.db),默认位置:/opt/rke/etcd-snapshots/,注意需要修改这个目录下的文件权限,否则vonechain用户无权访问它,可以返回root账号,进行以chown vonechain:root /opt/rke/etcd-snapshots
# Linux
rke etcd snapshot-save --name 20220310.bak --config rancher-cluster.yml
# 恢复
rke etcd snapshot-restore --name 20220222.bak --config rancher-cluster.yml
# restore: 指定用于恢复的快照文件
# -data-dir:恢复到哪个目录
RKE获取每个etcd节点上的运行快照,保存快照文件当前到etcd节点的/opt/rke/etcd-snapshots目录下.
三 升级RKE对应的k8s
如果原来是rancherv2.3.3,对应的rke版本比较低,只能先升级到k8s v1.18.20-rancher1-3;再高的版本,其它业务集群的k8s无法平滑过渡
rancher-cluster.yml文件下如
nodes:
- address: 192.168.0.204
internal_address: 192.168.0.204
user: vonechain
role: [controlplane,worker,etcd]
kubernetes_version: "v1.18.20-rancher1-3"
services:
etcd:
snapshot: true
creation: 6h
retention: 24h
四 Rancher基础集群升级
输入以下命令进行升级,注意升级的代码根据版本的不同,可以有所不同:
# rancher v2.5.8的升级到2.6.3如下
kubectl --kubeconfig=kube_config_rancher-cluster.yml set image deployment/rancher rancher=rancher/rancher:v2.6.3 -n cattle-system
替换<VERSION_TAG>为想要升级到的版本,可用的镜像版本可查阅DockerHub。
说明:set image用来更新镜像,上面的代码更新Deployment类型下面的rancher部署项目,容器是rancher,更新一个新的镜像rancher/rancher:v2.6.3 。
五 业务集群的升级【可以不升级】
/etc/kubernetes/ssl/kubecfg-kube-node.yaml这个是rancher为当前节点生产的k8s集群文件
kubectl set image deployment/cattle-cluster-agent cluster-register=rancher/rancher-agent:v2.6.3 -n cattle-system
kubectl set image DaemonSet/cattle-node-agent agent=rancher/rancher-agent:v2.6.3 -n cattle-system
升级之后,业务集群会自动下载对应的rancher镜像,等待高版本镜像启动即可
六 业务集群的k8s版本升级
之前是1.17,现在想升级到1.20,1.17在仪表盘里没有显示cpu和内存的使用情况,升级到1.20之后,在仪表表里,就可以看到实时的CPU和内存使用情况了,这个还是挺必要的。
- 升级后可查看cpu和内存
Recommend
-
4
Rancher无法管理集群怎么办?RKE来接手! - Rancher - OSCHINA - 中文开源技术交流社区 用代码保护地球, AI...
-
9
K8S 生态周报| Rancher Desktop v0.1.0 抢先一览网易有道 资深运维开发“ 「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅...
-
11
王海龙,Rancher中国社区技术经理,负责Rancher中国技术社区的维护和运营。拥有7年的云计算领域经验,经历了OpenStack到Kubernetes的技术变革,无论底层操作系统Linux,还是虚拟化KVM或是Docker容器技术都有丰富的运维和实践经验。
-
4
[Rancher 系列文] - 使用者登入管理 與 RKE Template 管理 Posted on 2021-10-31 Views: 6 Rancher 系列文第四篇,探討其他使用方式 前篇文章透過 rke / helm 成功的搭建了一個 Rancher 服務,並且於第...
-
10
[Rancher 系列文] - 創建 k8s 叢集 Posted on 2021-11-14 Views: 21 Rancher 系列文第五篇,探討創建 k8s 的方式 前篇文章探討了 Rancher 其中一種安裝 Kubernetes(RKE) 的方式,該方式會先透過 API 請...
-
6
通过Rancher Desktop在桌面上运行K8s Rancher 发行的操作系统新选择:Rancher Desk...
-
8
-
4
rancher~升级v2.6.3之后业务集群无法连rancher的解决方法 参考:
-
5
RKE安装kubernetes集群 March 20, 2019 in k8s,
-
3
Rancher K8S 集群子网规划 规划好子网: Pod 和 Service 的总体子网空间 每个节点所能使用的子网空间 Pod CIDR:10.42.0.0/16 Service CIDR:10.43.0.0/16 node-cidr...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK