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

news/2025/2/2 21:36:59 标签: 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(容灾卷跨集群测试)


系列文章目录

文章目录

前言

一、RKE2集群-etcd-Mysql主备倒换。

主备倒换步骤

1.1、检查集群状态

1.1 RKE2集群:

1.2 Rancher以及Rancher-backup:

1.3 主数据库:

1.4 备数据库同步状态:

1.5 备份

1.5.1 备份数据库

 1.5.2 备份RKE2集群

 1.6 数据库灾备切换

1.6.1 关闭主数据库(docker stop)观察Server节点的报错与rke2-server的状态做记录。

1.6.2、观察worker节点的报错与rke2-agent的状态做记录。

1.6.3 检查备数据库状态做记录。

1.6.4 在备库上执行以下命令,停止复制进程:

1.6.5 提升备库为主库

1.6.6 修改Server节点的config文件指向备数据库。

1.6.7 重启rke2-server

1.6.8 检查业务是否恢复。​​​​​​​


前言

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

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

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

本章我们做几个实验:

        1、RKE2集群-etcd-Mysql主备倒换-容灾测试。

        2、Rancher-backup-容灾测试。

                1、会对现有的Rancher做一些简单的变更,数据添加模拟运行了一段时间的Rancher。(比如修改密码等简单的,体现一下区别就行。)

                2、异地部署2台同规格的rke2主机.

                3、通过OSS将rke2集群需要的文件上传、在异地使用相同的离线镜像方式部署通过OSS拉取文件重新部署RKE2集群,模拟主数据中心故障,异地需要重新拉起RKE2集群的场景。

                4、拉起RKE2之后、一样的方式部署Rancher并且Rancher通过Rancher-backup还原。


一、RKE2集群-etcd-Mysql主备倒换。

先回顾一下我们到集群,2台节点部署RKE2-上面部署了Rancher以及Rancher-backup.使用的是外置的Mysql(主备)数据库。

本次先模拟主数据库故障,备数据库倒换。

主备倒换步骤

        1、先检查集群状态,所有业务都正常。

        2、主备数据库同步正常。

        3、备份一次主数据库。

        4、关闭主数据库(docker stop)

                1、观察Server节点的报错与rke2-server的状态做记录。

                2、观察worker节点的报错与rke2-agent的状态做记录。

        5、检查备数据库状态做记录。

        6、关闭备数据库只读状态,备升主。

        7、修改Server节点的config文件指向备数据库。

        8、检查业务是否恢复。


1.1、检查集群状态

1.1 RKE2集群:

1.2 Rancher以及Rancher-backup:

**这里说一下我今天升级了一下集群的配置,升级为了4C 8G。之前的2C 4G 太吃力了。

1.3 主数据库:

主数据库:

SHOW MASTER STATUS;

*注意bin的文件名称以及Position的位置编号。 

1.4 备数据库同步状态:

​​​​​​​SHOW SLAVE STATUS \G

**注意bin的文件名称以及Position的位置编号与主数据库为一致的。

1.5 备份

1.5.1 备份数据库
docker ps -a

 

你可以使用 docker exec 命令在运行的 MySQL 容器中执行 mysqldump 命令来备份数据库。

我的 MySQL 容器名称为 mysql-master,数据库名称为 kubernetes,你可以使用以下命令备份数据库:

docker exec mysql-master mysqldump -u root -pxxxxxx kubernetes  > /kubernetes_backup.sql

备份文件 kubernetes_backup.sql 会被保存到主机的 / 根目录下,而不是容器内部。这是因为你在命令中使用了 > 重定向符号,将 mysqldump 的输出重定向到了主机的文件系统中。

通过OSS客户端上传到我们备份的桶里。

 1.5.2 备份RKE2集群

上传Server与worker的配置文件在阿里云OSS上。
配置文件:

/etc/rancher/rke2/config.yaml

/etc/rancher/rke2/registries.yaml

对应RKE2版本的镜像文件:

 1.6 数据库灾备切换

1.6.1 关闭主数据库(docker stop)观察Server节点的报错与rke2-server的状态做记录。

*控制面pod全部卡死。 

执行kubectl 访问api-server报错:

1.6.2、观察worker节点的报错与rke2-agent的状态做记录。

因为Server节点控制面全部卡死,导致worker节点的保活机制全部挂掉。 

1.6.3 检查备数据库状态做记录。
SHOW SLAVE STATUS \G

*主数据库无法连接。 

1.6.4 在备库上执行以下命令,停止复制进程:
STOP SLAVE;
RESET SLAVE ALL;

1.6.5 提升备库为主库

在备库上执行以下命令,将其配置为可写,并更新相关配置:

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

1.6.6 修改Server节点的config文件指向备数据库。

1.41为备数据库

1.6.7 重启rke2-server
systemctl restart rke2-server.service 
1.6.8 检查业务是否恢复。

server节点

journalctl -u rke2-server.service -f

Server节点启动就连接上了数据库。 说明OK的。

 Worker节点keeplive恢复。

节点上的POD正常运行。 

总结:这种方式的RTO和RPO比纯备份还原要好很多。 


总结

1、这篇文章整理的容灾备份是非常湿滑和顺利的,但是这里要达成如此湿滑的容灾也需要一点前提:

        1、优秀的镜像仓库的容灾机制。

        2、跨地域的对象存储。

        3、熟练的容灾恢复步骤。

        4、熟悉的人工操作手。

2、能达到上面这4点,基本上容灾的RTO和RPO可以做到很低。


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

相关文章

1.4 Go 数组

一、数组 1、简介 数组是切片的基础 数组是一个固定长度、由相同类型元素组成的集合。在 Go 语言中,数组的长度是类型的一部分,因此 [5]int 和 [10]int 是两种不同的类型。数组的大小在声明时确定,且不可更改。 简单来说,数组…

XML DOM 获取节点值

nodeValue 属性用于获取节点的文本值。 getAttribute() 方法返回属性的值。 获取元素的值 在 DOM 中,每种成分都是节点。元素节点没有文本值。 元素节点的文本存储在子节点中。该节点称为文本节点。 获取元素文本的方法,就是获取这个子节点&#xff…

概述、 BGP AS 、BGP 邻居、 BGP 更新源 、BGP TTL 、BGP路由表、 BGP 同步

BGP(Border Gatreway Protcol)边界网关路由协议 BGP基本配置 BGP实战拓扑 外部BGP基础配置 内部BGP邻居 EBGP基本配置 CCNP综合实验拓扑 文章目录 系列文件概述BGP ASBGP 邻居BGP 更新源BGP TTLBGP路由表BGP 同步 概述 当前所使用的计算机网络…

NeetCode刷题第19天(2025.1.31)

文章目录 099 Maximum Product Subarray 最大乘积子数组100 Word Break 断字101 Longest Increasing Subsequence 最长递增的子序列102 Maximum Product Subarray 最大乘积子数组103 Partition Equal Subset Sum 分区等于子集和104 Unique Paths 唯一路径105 Longest Common Su…

c++ 定点 new 及其汇编解释

&#xff08;1&#xff09; 代码距离&#xff1a; #include <new> // 需要包含这个头文件 #include <iostream>int main() {char buffer[sizeof(int)]; // 分配一个足够大的字符数组作为内存池int* p new(&buffer) int(42); // 使用 placement new…

设计模式的艺术-观察者模式

行为型模式的名称、定义、学习难度和使用频率如下表所示&#xff1a; 1.如何理解观察者模式 一个对象的状态或行为的变化将导致其他对象的状态或行为也发生改变&#xff0c;它们之间将产生联动&#xff0c;正所谓“触一而牵百发”。为了更好地描述对象之间存在的这种一对多&…

局域网文件互传:手机与电脑的便捷传输利器

这是一款可在局域网内实现手机与电脑之间文件互传的软件&#xff0c;由吾爱作者y4h3z4精心开发。它是一款绿色单文件版软件&#xff0c;体积小巧&#xff0c;仅780K&#xff0c;无需安装&#xff0c;双击即可直接使用。 左上角“电脑根目录”可以选择需要传输到手机的文件夹。当…

2024第十五届蓝桥杯网安赛道省赛题目--rc4

rc4 一、查壳 无壳&#xff0c;32位 二、IDA分析 1.main 2.sub_401005 根据题目以及该函数的内容都可以让我们确定这是个rc4加密题。 所以