1 背景
异地备份机制是IT基础设施的必要一环,也是系统稳定性的保证。Kubernetes 高可用解决了单 master 宕机等情况。当整个区域停电宕机时,如何保证区域 Kubernetes 高可用呢?本文基于 velero 和 kubefed 工具来解决此问题。
2 方案架构说明
kubefed 作用为关联两个不同的 Kubernetes 集群,并设置其中一个为管理 Kubernetes 的 Host 集群;其余为 Kubernetes Member 集群。velero 作用为使用对象存储保存集群资源。
原理为:Host集群管理业务Member集群;通过 velero 客户端将Host集群资源保存至对象存储中,本方案对象存储选择为minio,也可以选择像S3;当Host集群宕机时,备份集群同步对象存储minio保存的资源对象,接管Member集群的管理。如图2.1所示
3 前提信息
-
Host集群(北京区) -
1master:192.168.0.23 -
1node:192.168.0.24 -
Member集群(广东区) -
1master:192.168.0.12 -
1node:192.168.0.30 -
备份Host集群(上海区) -
1master:192.168.0.25 -
1node:192.168.0.26 -
对象存储minio,可高可用部署(杭州区) -
139.198.113.239 -
velero -
客户端:192.168.0.23/192.168.0.25 -
服务端:192.168.0.23/192.168.0.25
4 Host集群管理Member集群
4.1 member集群加入到host集群

4.2 Host集群上部署业务应用至Member集群上

5 Host集群和备份集群velero服务端和客户端安装
5.1 velero 下载,拷贝/user/local/bin即velero客户端安装完成。
wget https://github.com/vmware-tanzu/velero/releases/download/v1.5.3/velero-v1.5.3-linux-amd64.tar.gz
tar -xzvf velero-v1.5.3-linux-amd64.tar.gz
5.2 对象存储minio安装,此服务139.198.113.239:31001
5.3 服务端安装,提前创建好minio用户名和密码文件
cat <<'EOF' > credentials-velero
[default]
aws_access_key_id = minio
aws_secret_access_key = minio123
EOF
注意:secret-file与执行指令同级目录,s3Url值。
velero install
--image velero/velero:v1.5.3
--provider aws
--bucket velero
--namespace velero
--secret-file ./credentials-velero
--velero-pod-cpu-request 200m
--velero-pod-mem-request 200Mi
--velero-pod-cpu-limit 1000m
--velero-pod-mem-limit 1000Mi
--use-volume-snapshots=false
--use-restic
--restic-pod-cpu-request 200m
--restic-pod-mem-request 200Mi
--restic-pod-cpu-limit 1000m
--restic-pod-mem-limit 1000Mi
--backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://139.198.113.239:31001
--plugins velero/velero-plugin-for-aws:v1.1.0
5.4 检查velero服务端安装成功
kubectl get pod -n velero
NAME READY STATUS RESTARTS AGE
restic-w4vcp 1/1 Running 0 6h53m
velero-84f95b5cd7-2fvtr 1/1 Running 0 6h53m
6 备份Host集群资源,上传minio
velero backup create <backup-name>
7 minio 界面查看备份数据

8 Host集群宕机及备份集群上位
velero restore create --from-backup <backup-name>
9 查看最后效果

原文始发于微信公众号(云原生内经):基于 velero 和 kubefed 工具的 Kubernetes 异地灾备方案
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/167971.html