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

news/2025/2/2 18:46:01 标签: rancher

系列文章目录


第一章-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.1 Rancher-backup进行一次最新备份

2.2 部署rke2节点。

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

2.3 helm部署Rancher-bakeup

2.3.1  前提条件

2.3.2  添加 Rancher Helm 仓库

2.3.3 创建命名空间(可选)

2.3.4 安装 Rancher Backup以及Rancher Backup-crd

2.3.5 验证安装

2.3.6 恢复备份

2.4  安装cert-Manager

2.5  部署Rancher

2.5.1 这里有个细节。

2.5.2 通过values部署Rancher

2.5.3 检查Rancher状态

2.5.4 测试访问

 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上获取镜像和安装脚本文件。

*模拟真实还原场景。

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

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

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

mkdir -p /etc/rancher/rke2/  && mkdir -p /var/lib/rancher/rke2/agent/images/

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


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:

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: 

mirrors:
  "*":
    endpoint:
      - "https://mnt026bf.mirror.aliyuncs.com"
      - "https://registry.cn-hangzhou.aliyuncs.com"

 开始安装Server节点:

INSTALL_RKE2_ARTIFACT_PATH=/root/rke2 sh install.sh

systemctl start rke2-server.service 

监控一下安装:

 journalctl -u rke2-server.service -f

出现:


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


配置环境变量:

vim ​​​​​​​/etc/profile.local

kubectl get nodes

 ​​​​​​​

继续安装Worker节点:

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

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

cat /var/lib/rancher/rke2/server/node-token

**worker节点展示: 

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

 **启动worker节点:

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 仓库

helm repo add rancher-charts https://charts.rancher.io
helm repo update

1.3.3 创建命名空间(可选)

kubectl create namespace cattle-resources-system

1.3.4 安装 Rancher Backup以及Rancher Backup-crd

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 状态:

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存储的访问凭证:

kubectl create secret generic s3-creds \
  --from-literal=accessKey=<access key> \
  --from-literal=secretKey=<secret key>

本次案例的restore.yaml

# 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

kubectl create -f restore.yaml -n cattle-resources-system

**监控还原任务。

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包。我忘记了。

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


http://www.niftyadmin.cn/n/5840229.html

相关文章

30.Word:设计并制作新年贺卡以及标签【30】

目录 NO1.2 NO3邮件合并-信函 NO4邮件合并-标签​ NO1.2 另存为/F12&#xff1a;考生文件夹&#xff1a;Word.docx布局→页面设置对话框→页边距&#xff1a;上下左右→纸张&#xff1a;宽度/高度&#xff08;先调页边距&#x1f197;&#xff09;设计→页面颜色→填充效果→…

Pandas基础07(Csv/Excel/Mysql数据的存储与读取)

Pandas数据加载 在数据科学和机器学习的流程中&#xff0c;数据的加载与存储是非常重要的一环。Pandas是Python中用于数据处理的强大库&#xff0c;它提供了多种方式来加载和保存数据&#xff0c;支持不同的数据格式&#xff0c;如CSV、Excel以及数据库&#xff08;例如MySQL&…

FPGA| 使用Quartus II报错Top-level design entity ““ is undefined

1、使用FPGA准备点亮LED测试下板子&#xff0c;发现这个报错Error (12007): Top-level design entity "LEDLED" is undefined 工程如上图 报错如下图 2、分析到原因是因为工程名称和顶层模块里面的module名称不一样导致 解决办法&#xff1a;修改module名称和顶层模…

什么是门控循环单元?

一、概念 门控循环单元&#xff08;Gated Recurrent Unit&#xff0c;GRU&#xff09;是一种改进的循环神经网络&#xff08;RNN&#xff09;&#xff0c;由Cho等人在2014年提出。GRU是LSTM的简化版本&#xff0c;通过减少门的数量和简化结构&#xff0c;保留了LSTM的长时间依赖…

数据结构 树2

文章目录 前言 一&#xff0c;二叉搜索树的高度 二&#xff0c;广度优先VS深度优先 三&#xff0c;广度优先的代码实现 四&#xff0c;深度优先代码实现 五&#xff0c;判断是否为二叉搜索树 六&#xff0c;删除一个节点 七&#xff0c;二叉收索树的中序后续节点 总结 …

智慧园区系统集成解决方案引领未来城市管理的智能化转型

内容概要 在现代城市管理的背景下&#xff0c;“智慧园区系统集成解决方案”正扮演着越来越重要的角色。这种解决方案不仅仅是技术上的创新&#xff0c;更是一种全新的管理理念&#xff0c;它旨在通过高效的数据整合与分析&#xff0c;优化资源配置&#xff0c;提升运营效率。…

八、Spring Boot 日志详解

目录 一、日志的用途 二、日志使用 2.1 打印日志 2.1.1 在程序中获取日志对象 2.1.2 使用日志对象打印日志 2.2、日志框架介绍 2.2.1 门面模式(外观模式) 2.2.2 门面模式的实现 2.2.3 SLF4J 框架介绍 2.3 日志格式的说明 2.4 日志级别 2.4.1 日志级别的分类 2.4.2…

Java锁自定义实现到aqs的理解

专栏系列文章地址&#xff1a;https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标&#xff1a; 理解锁&#xff0c;能自定义实现锁通过自定义锁的实现复习Thread和Object的相关方法开始尝试理解Aqs, 这样后续基于Aqs的的各种实现将能更好的理解 目录 锁的…