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

news/2025/2/6 11:31:04 标签: rancher

系列文章目录


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

第二章-SUSE- Rancher-容器高可用与容灾测试-RKE2-集群搭建(使用Mysql)-CSDN博客

第三章-SUSE- Rancher-容器高可用与容灾测试-Rancher-(离线helm部署)

第四章-SUSE- Rancher-容器高可用与容灾测试-RKE2-数据库(Mysql主备倒换容灾)

第五章-SUSE- Rancher-容器高可用与容灾测试-Rancher-(使用Rancher-backup-异地还原测试)

第六章-SUSE- Rancher-容器高可用与容灾测试-RKE2-数据库(Mysql-异地备份还原方式容灾)

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

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


目录

系列文章目录

前言

一、Rancher纳管rke2集群01

1.1 纳管外部集群

1.2 加入集群

1.3 处理pod的DNS问题

 1.4 验证添加

二、rke2集群01部署longhorn

2.1 通过App-Charts

2.2 检查系统要求

2.3 满足系统要求

2.3.1 Runtime

2.3.2 K8s

2.3.3 Linux-cli

2.4 配置longhorn

2.4.1 使用默认配置即可

​编辑

2.4.2  等待安装

2.4.3 验证安装 

二、创建新rke2集群02

2.1 创建主机

2.2 通过Rancher部署rke2

2.3 修改仓库配置文件

2.4 主机安装

2.5 监控安装过程

2.6 验证拉起

三、部署longhorn

3.1 安装需要的CLI命令

3.2 安装

3.3 验证

四、打快照

4.1 启动快照

4.2 监控

4.3 快照验证

4.3.1 快照位置

五、部署测试pod

5.1 添加仓库

5.2 安装外部-ZooKeeper(Kafka依赖)-可选

5.2.1 验证ZooKeeper

5.3 安装kafka-内部ZooKeeper

5.3.1 关闭kraft模式

5.3.2 验证安装

5.3.3 Rancher验证

5.3.4 再次打快照

5.3.5 检查快照

六、还原测试

6.1 还原不包括kafka的快照

6.1.1 helm记录

6.1.2 看看pvc

 6.2 还原到最新的有kafka的快照

6.2.1 还原准备

6.2.2 监控进程

6.2.3 等待还原

6.2.4 检查业务

总结 


前言

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

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

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

第四章 我们模拟主数据中心数据库故障,将RKE2进行Mysql数据库主备倒换。

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

第六章,我们模拟主数据中心数据库故障,将RKE2的Mysql数据库通过备份还原。

本章,我们做两件事情:

        1、Rancher操作第六章我们使用rke2数据库备份还原的集群部署longhorn.(为了给最终章最准备)

        2、新建1台云主机,使用Rancher创建rke2集群-ETCD数据库。

                1、对其进行部署longhorn,此时打快照。

                2、再部署kafka.

                3、进行快照还原,测试快照还原。


一、Rancher纳管rke2集群01

1.1 纳管外部集群

1.2 加入集群

**等待Pod-Runing

1.3 处理pod的DNS问题

如果是域名访问且主机的DNS没有解析条目,可以单独修改coredns添加主机。

apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns
  namespace: kube-system
data:
  Corefile: |-
    .:53 {
        errors
        health {
            lameduck 5s
        }
        ready
        kubernetes cluster.local cluster.local in-addr.arpa ip6.arpa {
            pods insecure
            fallthrough in-addr.arpa ip6.arpa
            ttl 30
        }
        hosts {
            172.31.0.32 rancher.demo
            fallthrough
        }
        prometheus 0.0.0.0:9153
        forward . /etc/resolv.conf
        cache 30
        loop
        reload
        loadbalance
    }

 1.4 验证添加

二、rke2集群01部署longhorn

2.1 通过App-Charts

2.2 检查系统要求

2.3 满足系统要求

2.3.1 Runtime

containerd://1.7.23-k3s2

满足v1.3.7+

2.3.2 K8s

 v1.30.9+rke2r1
满足v1.21

2.3.3 Linux-cli

*安装
zypper install bash curl findmnt grep awk blkid open-iscsi  
*检查是否安装
zypper se --installed-only bash curl findmnt grep awk blkid open-iscsi

2.4 配置longhorn

2.4.1 使用默认配置即可

2.4.2  等待安装

2.4.3 验证安装 

二、创建新rke2集群02

2.1 创建主机

2.2 通过Rancher部署rke2

2.3 修改仓库配置文件

2.4 主机安装

**如果DNS没有就添加host解析。

2.5 监控安装过程

 journalctl -u rancher-system-agent.service -f

**出现这个报错不用管,是因为下面的进程正在启动。 

journalctl -u rke2-server.service -f 

**出现这个不用管,因为Runtime还在拉取镜像,还没到静态的ETCD启动的时候。 

2.6 验证拉起

**有个细节,你需要修改coredns的Rancher解析。

三、部署longhorn

3.1 安装需要的CLI命令

*安装
zypper install bash curl findmnt grep awk blkid open-iscsi  
*检查是否安装
zypper se --installed-only bash curl findmnt grep awk blkid open-iscsi

3.2 安装

3.3 验证

四、打快照

4.1 启动快照

4.2 监控

4.3 快照验证

4.3.1 快照位置

/var/lib/rancher/rke2/server/db/snapshots

五、部署测试pod

计划部署kafka进行测试。

5.1 添加仓库

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

国内平替

helm repo add appstore https://charts.grapps.cn

helm repo update App Store

5.2 安装外部-ZooKeeper(Kafka依赖)-可选

Kafka依赖ZooKeeper管理元数据,Bitnami的Kafka Chart默认会自动安装ZooKeeper,但建议显式配置。

helm install zookeeper appstore/zookeeper --set replicaCount=2 --set persistence.storageClass=longhorn --set persistence.size=20Gi  --version 11.4.9 --namespace=kafka --create-namespace

5.2.1 验证ZooKeeper

5.3 安装kafka-内部ZooKeeper

5.3.1 关闭kraft模式

helm install kafka appstore/kafka --set persistence.storageClass=longhorn --set persistence.size=3Gi  --namespace=kafka --set zookeeper.enabled=true --version=23.0.7 --set kraft.enabled=false

5.3.2 验证安装

5.3.3 Rancher验证

5.3.4 再次打快照

5.3.5 检查快照

我们此时有两个快照,一个包括kafka,一个不包括kafka. 

**这里多了一个自动备份快照。

12:19 是不包括kafka的快照。

4.34 是包括kafka的快照。 

六、还原测试

6.1 还原不包括kafka的快照

only etcd
Kubernetes version and etcd 
Cluster Config , Kubernetes version and etcd 
 

  • only etcd: 仅还原etcd数据,不会改变当前集群的Kubernetes版本和其他配置。适用于集群配置保持不变,仅需恢复数据的场景。
  • Kubernetes version and etcd: 同时还原Kubernetes版本和etcd数据,但不覆盖集群的其他配置。适用于需要将Kubernetes版本一起恢复到快照时的场景。
  • Cluster Config, Kubernetes version and etcd: 完整还原集群配置、Kubernetes版本以及etcd数据。适用于需要完整恢复集群所有状态(包括配置、版本和数据)的场景。

**我们的场景属于第一种。 

**集群开启还原后,会停止服务,等待etcd还原。 


*监控进程
journalctl -u rancher-system-agent.service -f

  

**等待状态正常即可。 

**检查还原状态

**kafka没了。 还原测试成功。

6.1.1 helm记录

**helm记录也没了

6.1.2 看看pvc

kafka创建pvc也没了

 6.2 还原到最新的有kafka的快照

6.2.1 还原准备

6.2.2 监控进程


*监控进程
journalctl -u rancher-system-agent.service -f


*监控进程
journalctl -u rke2.server.service -f

 **开始停止容器服务。

**开始启动rke2-server进程,恢复etcd进程完毕。 

6.2.3 等待还原

 

6.2.4 检查业务

**kafka还原回来了

 **PVC也回来了


总结 

1、本章完成了Rancher对下游集群打快照进行还原,只是简单做了一下etcd数据库的还原(元数据)。

2、下一章会针对下游集群升级版本还原以及将kafka中写入业务数据再还原进行测试。

3、同时会使用longhorn的快照卷进行跨集群恢复kafka测试。


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

相关文章

Go语言的转义字符

文章目录 1. Go语言的转义字符(escapechar)2. 小结和提示 1. Go语言的转义字符(escapechar) 说明:常用的转义字符有如下: \t : 表示一个制表符,通常使用它可以排版\n :换行符\\ :一个\\" :一个"\r :一个回…

ElasticSearch学习笔记-解析JSON格式的内容

如果需要屏蔽其他项目对Elasticsearch的直接访问操作&#xff0c;统一由一个入口访问操作Elasticsearch&#xff0c;可以考虑直接传入JSON格式语句解析执行。 相关依赖包 <properties><elasticsearch.version>7.9.3</elasticsearch.version><elasticsea…

深入解析:如何获取商品 SKU 详细信息

在电商领域&#xff0c;SKU&#xff08;Stock Keeping Unit&#xff0c;库存进出计量的基本单元&#xff09;是商品管理中的一个重要概念。每个 SKU 都代表了一个具体的产品变体&#xff0c;例如不同的颜色、尺寸或配置。获取商品的 SKU 详细信息对于商家优化库存管理、提高运营…

solidity高阶 -- 调用接口合约

在区块链开发中&#xff0c;Solidity 是一种广泛使用的智能合约编程语言&#xff0c;而接口合约&#xff08;Interface&#xff09;是 Solidity 中一个非常重要的概念。它为智能合约之间的交互提供了一种标准化的方式&#xff0c;使得合约之间的调用更加灵活、安全且易于管理。…

【微服务实战之Docker容器】第八章-微服务实战

文章目录 1 任务2 实战2.1 新建一个微服务模块2.2 使用Docker发布jar包 1 任务 通过IDEA新建一个普通的微服务模块 通过docker发布微服务部署到docker容器 2 实战 2.1 新建一个微服务模块 docker_boot maven依赖 <?xml version"1.0" encoding"UTF-8&qu…

6S模型的编译问题解决

使用python处理遥感光谱数据&#xff0c;免不了进行大气校正&#xff0c;基本上免费的就是使用Py6s&#xff0c;而py6s库只是一个接口&#xff0c;还需要自己配置6S模型&#xff0c;可以查到很多资料&#xff0c;6S模型是古老的fortran语言写的&#xff0c;基本配置流程就是安装…

神经网络常见激活函数 2-tanh函数(双曲正切)

tanh 函数求导 tanh函数 tanh ⁡ ( x ) e x − e − x e x e − x 2 ⋅ s i g m o i d ( 2 x ) − 1 \begin{aligned} \tanh (x) & \frac{e^x - e^{-x}}{e^xe^{-x}} \\ &2\cdot\rm sigmoid(2x) - 1 \end{aligned} tanh(x)​exe−xex−e−x​2⋅sigmoid(2x)−1​ …

响应式编程_04Spring 5 中的响应式编程技术栈_WebFlux 和 Spring Data Reactive

文章目录 概述响应式Web框架Spring WebFlux响应式数据访问Spring Data Reactive 概述 https://spring.io/reactive 2017 年&#xff0c;Spring 发布了新版本 Spring 5&#xff0c; Spring 5 引入了很多核心功能&#xff0c;这其中重要的就是全面拥抱了响应式编程的设计思想和实…