第五章-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有老师可以实现恢复无状态应用,我感觉不行,我下次试试。

相关推荐
赵文宇(温玉)2 天前
不翻墙,基于Rancher极速启动Kubernetes,配置SSO登录,在线环境开放学习体验
学习·kubernetes·rancher
和光同尘202316 天前
使用Rancher快速部署K8S集群
docker·云原生·容器·kubernetes·centos·rancher·虚拟机
西京刀客16 天前
Docker Desktop 替代方案之OrbStack、podman、Rancher Desktop
docker·rancher·podman·orbstack
Rancher by SUSE1 个月前
告别卡顿与等待,Rancher Vai 让集群操作“秒响应”
rancher
k3s中文社区1 个月前
K3s + Sysbox:让容器拥有“虚拟机的灵魂”
kubernetes·rancher·k3s
RancherLabs1 个月前
告别卡顿与等待,Rancher Vai 让集群操作“秒响应”
kubernetes·rancher
三坛海会大神5551 个月前
k8s(十二)Rancher详解
容器·kubernetes·rancher
荣光波比1 个月前
K8S(十五)—— 企业级K8s集群管理实践:Rancher安装配置与核心功能实操
容器·kubernetes·rancher
RancherLabs1 个月前
Rancher 社区双周报| Longhorn v1.10.0 重磅发布,企业级存储性能全面升级
kubernetes·k8s·rancher
@t.t.3 个月前
利用Rancher平台搭建Swarm集群
docker·rancher