系列文章目录
第一章-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(容灾卷跨集群测试)
目录
[1.1 纳管外部集群](#1.1 纳管外部集群)
[1.2 加入集群](#1.2 加入集群)
[1.3 处理pod的DNS问题](#1.3 处理pod的DNS问题)
[1.4 验证添加](#1.4 验证添加)
[2.1 通过App-Charts](#2.1 通过App-Charts)
[2.2 检查系统要求](#2.2 检查系统要求)
[2.3 满足系统要求](#2.3 满足系统要求)
[2.3.1 Runtime](#2.3.1 Runtime)
[2.3.2 K8s](#2.3.2 K8s)
[2.3.3 Linux-cli](#2.3.3 Linux-cli)
[2.4 配置longhorn](#2.4 配置longhorn)
[2.4.1 使用默认配置即可](#2.4.1 使用默认配置即可)
[2.4.2 等待安装](#2.4.2 等待安装)
[2.4.3 验证安装](#2.4.3 验证安装)
[2.1 创建主机](#2.1 创建主机)
[2.2 通过Rancher部署rke2](#2.2 通过Rancher部署rke2)
[2.3 修改仓库配置文件](#2.3 修改仓库配置文件)
[2.4 主机安装](#2.4 主机安装)
[2.5 监控安装过程](#2.5 监控安装过程)
[2.6 验证拉起](#2.6 验证拉起)
[3.1 安装需要的CLI命令](#3.1 安装需要的CLI命令)
[3.2 安装](#3.2 安装)
[3.3 验证](#3.3 验证)
[4.1 启动快照](#4.1 启动快照)
[4.2 监控](#4.2 监控)
[4.3 快照验证](#4.3 快照验证)
[4.3.1 快照位置](#4.3.1 快照位置)
[5.1 添加仓库](#5.1 添加仓库)
[5.2 安装外部-ZooKeeper(Kafka依赖)-可选](#5.2 安装外部-ZooKeeper(Kafka依赖)-可选)
[5.2.1 验证ZooKeeper](#5.2.1 验证ZooKeeper)
[5.3 安装kafka-内部ZooKeeper](#5.3 安装kafka-内部ZooKeeper)
[5.3.1 关闭kraft模式](#5.3.1 关闭kraft模式)
[5.3.2 验证安装](#5.3.2 验证安装)
[5.3.3 Rancher验证](#5.3.3 Rancher验证)
[5.3.4 再次打快照](#5.3.4 再次打快照)
[5.3.5 检查快照](#5.3.5 检查快照)
[6.1 还原不包括kafka的快照](#6.1 还原不包括kafka的快照)
[6.1.1 helm记录](#6.1.1 helm记录)
[6.1.2 看看pvc](#6.1.2 看看pvc)
[6.2 还原到最新的有kafka的快照](#6.2 还原到最新的有kafka的快照)
[6.2.1 还原准备](#6.2.1 还原准备)
[6.2.2 监控进程](#6.2.2 监控进程)
[6.2.3 等待还原](#6.2.3 等待还原)
[6.2.4 检查业务](#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测试。