velero 集群备份实战

编程入门 行业动态 更新时间:2024-10-28 05:25:52

velero <a href=https://www.elefans.com/category/jswz/34/1771240.html style=集群备份实战"/>

velero 集群备份实战

文章目录

  • velero 集群备份实战
    • velero 架构
    • velero 安装
    • 备份mysql集群
      • 备份命令
      • 查看备份列表
    • 如何恢复?
    • 如何卸载?
    • 报错处理

velero 集群备份实战

velero 架构

vmware 的产品。velero 是一个CS架构,服务端是一堆CRD, 监听客户端发来的请求。

优势:

  • 份集群数据,并在集群故障的情况下进行还原
  • 将集群资源迁移到其他集群
  • 将生产集群复制到开发和测试集群
  • 支持restic

velero 安装

  • Helm Chart 来进行安装
  • velero client安装

这里使用velero client安装,下载地址


使用 minio 来作为对象存储,minio 是兼容 S3 的,所以这里我们配置的 provider(声明使用的 Velero 插件类型)是 aws--secret-file 用来提供访问 minio 的密钥,--use-restic 表示使用开源免费备份工具 restic 备份和还原持久卷数据,启用该参数后会部署一个名为 restic 的 DaemonSet 对象,--plugins 使用的 velero 插件,这里使用 AWS S3 兼容插件。

velero install    \--provider aws   \--bucket velero   \--image 10.50.10.185/velero/velero:v1.9.7  \--plugins 10.50.10.185/velero/velero-plugin-for-aws:v1.5.5  \--namespace velero  \--secret-file ./credentials-velero  \--use-volume-snapshots=false \--use-restic \--backup-location-config region=minio,s3ForcePathStyle="true",s3Url=:32111

注意点

  • credentials-velero 的内容
# minio 的秘钥信息
[default]
aws_access_key_id=<access key id> 
aws_secret_access_key=<secret access key>
  • minio 的api 地址进行本地host解析( 请思考为何写svc不可以?)

安装完成后 velero 的服务端就部署成功了。

  • 执行完之后在minio console 确认bucket是否创建成功

  • 确认安装log
kubectl logs deployment/velero -n velero

备份mysql集群

mysql 一共两个节点

k get po -n mysql-velero
NAME      READY   STATUS    RESTARTS        AGE
mysql-0   2/2     Running   0               5m32s
mysql-1   2/2     Running   1 (4m45s ago)   5m20s

在mysql中创建一个数据库

mysql> create database velero_test;
Query OK, 1 row affected (0.00 sec)mysql>
mysql> show databases;
+------------------------+
| Database               |
+------------------------+
| velero_test            |
+------------------------+

这个ns等会备份完之后直接干掉。

备份命令

$ velero backup  create mysql-velero-backup --include-namespaces mysql-velero --default-volumes-to-restic
Backup request "mysql-velero-backup" submitted successfully.
Run `velero backup describe mysql-velero-backup` or `velero backup logs mysql-velero-backup` for more details.

查看备份列表

elero backup get

$ velero backup get
NAME                       STATUS       ERRORS   WARNINGS   CREATED                         EXPIRES   STORAGE LOCATION   SELECTOR
mysql-velero-backup        InProgress   0        0          2023-06-28 15:49:08 +0800 CST   29d       default            <none>

稍等片刻就备份好了,因为没啥数据。

此时minio 应该就有备份数据了。

如何恢复?

直接删除 mysql-velero 这个ns。然后恢复。

如何卸载?

首次安装的时候minio 的秘钥写错了,需要重新部署,卸载后重新部署

velero uninstall --force -n velero
Waiting for velero namespace "velero" to be deleted
.....................................................................
Velero namespace "velero" deleted
Velero uninstalled ⛵

报错处理

  1. minio 的svc地址报错

s3Url=:9000 minio使用这个地址,备份报错

velero backup logs mysql-backup
An error occurred: Get ":9000/velero/backups/mysql-backup/mysql-backup-logs.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=wPZ0tVrD0Kdm1K4U%2F20230627%2Fminio%2Fs3%2Faws4_request&X-Amz-Date=20230627T084946Z&X-Amz-Expires=600&X-Amz-SignedHeaders=host&X-Amz-Signature=40edf68d0f72dbfafae2be6321c19d08259e07b53f8249efc9c868f4a3fb83f7": 
dial tcp: lookup chot-minio.minio.svc.cluster.local on 10.0.2.3:53: no such host

minio 的svc如下,使用 chot-minio.minio.svc:9000

# 9000是minio 的api端口, 9001是web console 端口
k get svc -n minio
NAME                  TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)                         AGE
chot-minio            NodePort    10.96.96.43   <none>        9000:32111/TCP,9001:30559/TCP   109d

服务端的安装使用的是celero客户段命令,这个velero命令是在宿主机,域名也是先走宿主机,宿主机当然不认识和这个集群内的域名了,所以这里应该使用nodeport + 本地hosts解析 访问minio api.

改成这个s3Url=:32111即可。宿主机本地需要解析这个域名。

  1. 备份报错

还是用ip地址吧,这个域名解析好像又跑到k8s内部去了。 10.96.2.53 这个IP 是coreDNS 的svc ip。

caused by: Head":32111/velero/backups/mysql-backup-new20230628/velero-backup.json":dial tcp: lookup chot-minio-api.prod on 10.96.0.2:53: no such host

换成ip 就没有问题了。

  1. 恢复报错

恢复的时候需要和这个helper镜像。

更多推荐

velero 集群备份实战

本文发布于:2023-11-16 17:41:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1630485.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:集群   备份   实战   velero

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!