基于 velero 和 kubefed 工具的 Kubernetes 异地灾备方案

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所示基于 velero 和 kubefed 工具的 Kubernetes 异地灾备方案

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集群

基于 velero 和 kubefed 工具的 Kubernetes 异地灾备方案

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

基于 velero 和 kubefed 工具的 Kubernetes 异地灾备方案

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 界面查看备份数据

基于 velero 和 kubefed 工具的 Kubernetes 异地灾备方案

8 Host集群宕机及备份集群上位

velero restore create --from-backup <backup-name>

9 查看最后效果

基于 velero 和 kubefed 工具的 Kubernetes 异地灾备方案


原文始发于微信公众号(云原生内经):基于 velero 和 kubefed 工具的 Kubernetes 异地灾备方案

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/167971.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!