第五章-SUSE- Rancher-容器高可用与容灾测试-Rancher-back up(容灾测试)

系列文章目录

第一章-SUSE- Rancher-容器高可用与容灾测试-RKE2-外置Mysql(主备集群搭建)-CSDN博客

第二章-SUSE- Rancher-容器高可用与容灾测试-RKE2-集群搭建(外置Mysql)

第三章-SUSE- Rancher-容器高可用与容灾测试-Rancher-外置数据库(复用Mysql)

第四章-SUSE- Rancher-容器高可用与容灾测试-RKE2(容灾测试)

第五章-SUSE- Rancher-容器高可用与容灾测试-Rancher-back up(容灾测试)

第六章-SUSE- Rancher-容器高可用与容灾测试-Rancher拉起的集群(快照容灾测试)

第七章-SUSE- Rancher-容器高可用与容灾测试-Longhorn(容灾卷跨集群测试)


系列文章目录

前言

二、Rancher-backup-容灾测试。

[2.1 调度备份](#2.1 调度备份)

[2.1.1 Rancher-backup进行一次最新备份](#2.1.1 Rancher-backup进行一次最新备份)

[2.2 部署rke2节点。](#2.2 部署rke2节点。)

[2.2.1 异地重新部署2个4C 8G rke2节点,这次使用原生etcd数据库。](#2.2.1 异地重新部署2个4C 8G rke2节点,这次使用原生etcd数据库。)

[2.3 helm部署Rancher-bakeup](#2.3 helm部署Rancher-bakeup)

[2.3.1 前提条件](#2.3.1 前提条件)

[2.3.2 添加 Rancher Helm 仓库](#2.3.2 添加 Rancher Helm 仓库)

[2.3.3 创建命名空间(可选)](#2.3.3 创建命名空间(可选))

[2.3.4 安装 Rancher Backup以及Rancher Backup-crd](#2.3.4 安装 Rancher Backup以及Rancher Backup-crd)

[2.3.5 验证安装](#2.3.5 验证安装)

[2.3.6 恢复备份](#2.3.6 恢复备份)

[2.4 安装cert-Manager](#2.4 安装cert-Manager)

[2.5 部署Rancher](#2.5 部署Rancher)

[2.5.1 这里有个细节。](#2.5.1 这里有个细节。)

[2.5.2 通过values部署Rancher](#2.5.2 通过values部署Rancher)

[2.5.3 检查Rancher状态](#2.5.3 检查Rancher状态)

[2.5.4 测试访问](#2.5.4 测试访问)

[2.5.5 验证恢复](#2.5.5 验证恢复)


前言

第一章我们搭建好了Mysql(主备复制)实例。

第二章我们搭建好Rancher管理集群的基础设施- RKE2集群-Tarball方法-离线。

第三章我们使用helm离线方式部署好了Rancher到RKE2集群中,同时使用Rancher-backup-调度了一次备份任务到阿里云的对象存储。

第四章 我们模拟主数据中心故障,将RKE2集群进行了恢复。

本章节,我们使用Rancher-backup对Rancher进行异地还原。


一、Rancher-backup-容灾测试。

1.1 调度备份

1.1.1 Rancher-backup进行一次最新备份

1.2 部署rke2节点。

1.2.1 异地重新部署2个4C 8G rke2节点,这次使用原生etcd数据库。

**Server节点与Worker节点从阿里云OSS上获取镜像和安装脚本文件。

*模拟真实还原场景。

*也可以下载到一个节点后从节点分发。

**目的就是为了快速让节点获取到镜像和配置文件。

**两个节点分别创建配置文件目录以及镜像目录

sql 复制代码
mkdir -p /etc/rancher/rke2/  && mkdir -p /var/lib/rancher/rke2/agent/images/

**两个节点分别复制对应的文件到想要的目录下:

sql 复制代码
cp config.yaml registries.yaml /etc/rancher/rke2/

cp rke2-images-cilium.linux-amd64.tar.zst rke2-images-core.tar /var/lib/rancher/rke2/agent/images/

*验证一手

Server节点修改配置文件-config.yaml:

sql 复制代码
write-kubeconfig-mode: "0644"
tls-san:
  - "foo.local"
node-label:
  - "job=rke2"
#datastore-endpoint: "mysql://root:e2231255@tcp(172.30.0.213:3306)/kubernetes"
cni: cilium
write-kubeconfig-mode: "0644"
debug: true
token: SECRET

修改配置文件-registries.yaml:

sql 复制代码
mirrors:
  "*":
    endpoint:
      - "https://mnt026bf.mirror.aliyuncs.com"
      - "https://registry.cn-hangzhou.aliyuncs.com"

开始安装Server节点:

sql 复制代码
INSTALL_RKE2_ARTIFACT_PATH=/root/rke2 sh install.sh

systemctl start rke2-server.service 

监控一下安装:

sql 复制代码
 journalctl -u rke2-server.service -f

出现:

**出现keep-alive的ping就差不多了。

配置环境变量:

sql 复制代码
vim ​​​​​​​/etc/profile.local

kubectl get nodes

​​​​​​​

继续安装Worker节点:

**修改配置文件-config.yaml:

**server节点获取加入的token:

sql 复制代码
cat /var/lib/rancher/rke2/server/node-token

**worker节点展示:

**worker节点镜像配置展示:

**启动worker节点:

sql 复制代码
INSTALL_RKE2_ARTIFACT_PATH=/root/rke2 sh install.sh

systemctl start rke2-agent.service 

**观察日志

**Server节点验证:

**这里的ingress-nginx报错:

*因为阿里云的镜像没有安装iptables,安装即可。 而kube-proxy默认使用ipbtales来4层LB负载。

**安装好ipbtales就好了。

1.3 helm部署Rancher-bakeup

1.3.1 前提条件

  • 已安装 Helm:确保已安装 Helm v3 或更高版本。

  • Kubernetes 集群 :目标集群已就绪,且 kubeconfig 配置正确。

  • Rancher 兼容性 :确认 Rancher Backup 版本与您的 Rancher 版本兼容


1.3.2 添加 Rancher Helm 仓库

sql 复制代码
helm repo add rancher-charts https://charts.rancher.io
helm repo update

1.3.3 创建命名空间(可选)

sql 复制代码
kubectl create namespace cattle-resources-system

1.3.4 安装 Rancher Backup以及Rancher Backup-crd

sql 复制代码
helm install rancher-backup-crd rancher-charts/rancher-backup-crd  -n  cattle-resources-system --create-namespace

helm install rancher-backup rancher-charts/rancher-backup \
  --namespace cattle-resources-system 

1.3.5 验证安装

检查 Pod 状态:

sql 复制代码
kubectl get pods -n cattle-resources-system -l app.kubernetes.io/name=rancher-backup

输出应显示 Running 状态。


1.3.6 恢复备份

这里简单说一下Rancher-backup的原理,创建了3个自定义资源:

Backup 备份

*创建备份任务

Restore 还原

*创建还原任务

ResourceSet 资源集
**定义备份的资源是哪些

工作流:

1、创建一个ResourceSet,以您要备份的所有资源为目标。

2、执行备份:要进行备份,用户必须创建备份CRD的实例(创建备份CR)。

3、从备份恢复:要从备份恢复,用户必须创建还原CRD的实例(创建还原CR)

从上一章的OSS 创建的中备份恢复

创建S3存储的访问凭证:

sql 复制代码
kubectl create secret generic s3-creds \
  --from-literal=accessKey=<access key> \
  --from-literal=secretKey=<secret key>

本次案例的restore.yaml

sql 复制代码
# restore.yaml
apiVersion: resources.cattle.io/v1
kind: Restore
metadata:
  name: restore
spec:
  backupFilename: thesectimebackup-1c9dbfa6-0c64-41c5-ac10-dc9e7b59cc81-2025-01-28T07-30-43Z.tar.gz
  prune: false
  storageLocation:
    s3:
      bucketName: for-rancher-backup
      credentialSecretName: s3-creds
      credentialSecretNamespace: default
      endpoint: oss-cn-shanghai-internal.aliyuncs.com
      region: cn-shanghai

s3:
bucketName: for-rancher-backup
credentialSecretName: s3-creds
credentialSecretNamespace: default
endpoint: oss-cn-shanghai-internal.aliyuncs.com
region: cn-shanghai

sql 复制代码
kubectl create -f restore.yaml -n cattle-resources-system

**监控还原任务。

sql 复制代码
kubectl logs -n cattle-resources-system --tail 100 -f -l app.kubernetes.io/instance=rancher-backup

**出现Completd.

一旦还原资源的状态为Completed,您就可以继续cert-Manager和Rancher安装。

1.4 安装cert-Manager

**之前阿里云的OSS应该上传cert-Manager的镜像的tar包以及对应的Chart包。我忘记了。

sql 复制代码
# Install the cert-manager Helm chart
helm install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --set installCRDs=true

**因为我的节点使用的是代理镜像仓库,从外网节点传递Chart包就可以了,不用担心镜像的问题。

**私有仓库也不用担心,只要异地有镜像同步的仓库就行。

**检查cert-manager状态

1.5 部署Rancher

**逻辑也是一样,传递镜像包或者镜像仓库能访问。

**配置文件Chart上传OSS。

1.5.1 这里有个细节。

就是之前部署Rancher的values.yaml文件,一定要注意备份。下面展示提取的命令,因为我的测试环境配置修改的就只是set -- hostname 没有其它的则没有做这一步。

helm get values rancher -n cattle-system -o yaml > rancher-values.yaml

1.5.2 通过values部署Rancher

helm install rancher rancher-latest/rancher -n cattle-system -f rancher-values.yaml --version x.y.z

**我的测试环境两边的Rancher都只传递了一个set hostname的values.则可以通过简单的cli去执行。

helm install rancher rancher-stable/rancher   --namespace cattle-system   --set hostname=rancher.demo   --version 2.9.3

1.5.3 检查Rancher状态

kubectl get po -n cattle-system

1.5.4 测试访问

**先修改hosts文件

**访问rancher.demo

**可以看到如果不是因为备份还原成功了,那么这里会出现第一次登陆让你输入密码。
**证明容灾测试成功了。

1.5.5 验证恢复

**输入备份之前的密码,成功登陆。


总结

1、本篇文章主要是模拟Rancher-back up 恢复故障集群的实验。

2、Rancherback up有老师可以实现恢复无状态应用,我感觉不行,我下次试试。

相关推荐
A ?Charis2 天前
第四章-SUSE- Rancher-容器高可用与容灾测试-RKE2(容灾测试)
rancher
郝开2 天前
Windows系统中Docker可视化工具对比分析,Docker Desktop,Portainer,Rancher
docker·容器·rancher·docker desktop·portainer
A ?Charis5 天前
第二章-SUSE- Rancher-容器高可用与容灾测试-RKE2-集群搭建(外置Mysql)-Tarball方法
rancher
A ?Charis5 天前
第三章-SUSE- Rancher-容器高可用与容灾测试-Rancher-外置数据库(复用Mysql)
rancher
AKA小徐1 个月前
Debian12使用RKE2离线部署3master2node三主两从的k8s集群详细教程
kubernetes·rancher·rke2
long_songs2 个月前
kubectl rancher等重启之后服务起不来一分钟解决(另类方案)did you specify the right host or port?
linux·运维·服务器·kubernetes·kubectl·rancher·kubelet
十一呓语2 个月前
k8s+rancher配置滚动发布更新时服务不可用
java·kubernetes·rancher
欧阳潇瑞2 个月前
Ubuntu24 cgroupv2导致rancher(k3s)启动失败的处理
rancher
A ?Charis3 个月前
解决部署RKE2或K3S-“docker.io/rancher/mirrored-pause:3.6\“: -无法拉取镜像办法
docker·容器·rancher