概述
上篇我们介绍了Rancher高可用集群的离线部署,包括使用RKE创建的kubernetes集群,以及运行在集群中的rancher服务。
为了管理好这套系统,我们要定期对这套系统,备份、升级和维护,其中kubernetes集群中的数据保存在etcd当中,需要使用RKE对etcd的数据进行备份;kubernetes集群版本需要选择当前rancher支持的版本,同样使用RKE升级;rancher的数据使用rancher-backup应用保存,升级直接使用helm,下文会对这些内容分开介绍。
本次测试环境与上篇一致:
共4台linux机器(MachineA、MachineB、MachineC、MachineD),一台用于nginx负载均衡和集群安装(< Nginx_Node_IP >下文简称MachineA);三台用于k8s节点安装(< K8S_Node1_IP >、< K8S_Node2_IP >、< K8S_Node3_IP >下文简称MachineB、MachineC、MachineD)
1. kubernetes备份与恢复
1.1 自动备份
使用RKE创建的kubernetes集群,默认开启etcd的自动备份 ,每6小时1次。我们可以使用这些快照恢复集群。RKE 将快照保存MachineB、MachineC、MachineD的/opt/rke/etcd-snapshots
路径下。
1.2 手动备份
在MachineA运行./rke etcd snapshot-save --config rancher-cluster.yaml --name sanpshot-xxxx
命令,运行后即可保存 cluster config 文件内每个 etcd 节点的快照。RKE 会将节点快照保存在MachineB、MachineC、MachineD的/opt/rke/etcd-snapshots
路径下。
运行上述命令时,RKE 会创建一个用于备份快照的容器。完成备份后,RKE 会删除该容器。
1.3 恢复集群
在MachineA运行./rke etcd snapshot-restore --config rancher-cluster.yaml --name sanpshot-xxxx
命令。
等待集群数据的恢复,注意恢复过程中会重建当前集群中所有工作负载,对于应用中没有持久化的数据可能会丢失,需要谨慎。
集群恢复后,需要等待rancher服务重新启动后,才能够正常使用。
2. Rancher备份与恢复
2.1 安装 rancher-backup operator
rancher-backup
operator 可以从 Rancher UI 安装,也可以用 Helm CLI 安装。在这两种情况下,rancher-backup
Helm chart 安装在运行 Rancher server 的 Kubernetes 集群上。它是一个集群管理员专用的功能,只对 local 集群可用。
本文介绍从Rancher UI 安装,步骤如下:
在 Rancher UI 的 Cluster Manager 中,选择名为local的集群。
在右上角单击 Cluster Explorer。
单击 Apps。
单击
rancher-backup
operator。配置默认的存储位置,rancher的备份可以保存在PV中,我们可以使用NFS创建一个专门用于备份的PV。
安装成功后,即可备份和还原rancher。
2.2 备份
要执行备份,必须创建 Backup 类型的自定义资源。
在Cluster Explorer中,进入左上角的下拉菜单,单击Rancher Backups。
单击 Backup。
使用表单或 YAML 编辑器创建 Backup。
要使用该表单配置 Backup 详细信息,请单击创建,可以选择定时调度、加密和存储位置,这里我们选择备份到安装
rancher-backup
时默认配置的PV上。
2.3 还原
在Cluster Explorer中,进入左上角的下拉菜单,单击Rancher Backups。
单击 Restore。
使用表单或 YAML 创建 Restore。
3. Rancher升级
3.1 获取最新版镜像并推送到内网仓库
| Release 文件 | 描述 |
rancher-images.txt | 此文件包含安装 Rancher、创建集群和运行 Rancher 工具所需的镜像列表。 |
rancher-save-images.sh | 这个脚本会从 DockerHub 中拉取在文件rancher-images.txt中描述的所有镜像,并将它们保存为文件 rancher-images.tar.gz。 |
rancher-load-images.sh | 这个脚本会载入文件rancher-images.tar.gz中的镜像,并将它们推送到您自己的私有镜像库。 |
详细操作见上篇。
3.2 获取最新的 Rancher Helm Chart
从可以访问 Internet 的系统linux中,获取最新的 Rancher Helm Chart,如内网安装,则可以直接使用Chart文件,不需要重新fetch。
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm fetch rancher-stable/rancher
您会看到最新稳定版(rancher-2.5.8.tgz )文件下载到本地。
3.3 渲染模板
在MachineA运行

3.4 升级
在MachineA运行

安装过程中可以执行以下命令查看安装进度:

4. kubernetes升级
4.1 获取最新版本RKE
从http://mirror.rancher.cn/下载所需要的RKE版本,并替换旧版RKE文件。
4.2 文件准备
在MachineA上
保证工作目录中有管理Kubernetes 集群状态所需的文件
cluster.rkestate
这个文件和rancher-cluster.yml
位于同一目录下。(cluster.rkestate
文件非常重要,控制集群和升级集群的时候都需要用到这个文件,请妥善保管该文件。)使用
./rke config --list-version -all
查看当前版本支持的kubernetes版本在
rancher-cluster.yml
添加kubernetes_version: "v1.20.6-rancher1-1"
(填写步骤二获得的版本)
4.3 升级

5.平台维护
rancher集群提供了基于Prometheus和Grafana的监控operator和基于Fluentbit的日志operator,开箱即用非常方便。
本节主要是介绍Rancher出现故障时,各组件的排查方法。
5.1 etcd

5.2 Controlplane

5.3 NGINX 代理

5.4 Worker 节点和其他组件





