系列文章目录
第一章-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测试。