简介
Velero 让您:
- 备份您的集群并在丢失时恢复。
- 将集群资源迁移到其他集群。
- 将您的生产集群复制到开发和测试集群。
Velero 包括:
- 在您的集群上运行的服务器
- 本地运行的命令行客户端
Velero 不具备版本管理功能,只能进行增量恢复,不会进行删除或覆盖操作(资源存在不恢复)。
原理
Velero 首先会在集群中创建各种 CRD 以及相关的控制器,通过对 CRD 对象的操作完成备份、恢复行为。Velero 的工作原理图如下:
- Velero 客户端调用 Kubernetes API 服务器创建 Backup 对象。
- BackupController 监听 Backup 对象变化,以执行备份过程。
- 备份时,BackupController 通过 API Server 查询相关数据。
- 备份后,BackupController 将数据上传到对象存储。
运维拓扑图如下:
在所有集群上安装 Velero,运维人员通过 Velero Client 给 Velero Server 发送备份、恢复请求。Velero Server 推拉指定的 Kubernetes 对象的数据。这些数据以 Json 格式压缩存储在对象存储服务中。
install
镜像
1 |
|
配置好credentials-velero, minio 的账号密码
1 |
|
安装步骤
- s3Url 要填minio的NodeIP:NodePort
- 在minio上面创建对应的bucket
- 导入velero.tar镜像到镜像仓库
- 准备好secret-file
- 执行安装命令
1 |
|
配置说明
- use-volume-snapshots默认用false,这个需要CSI(容器存储接口)驱动支持快照功能,使用特定的存储类
- use-restic安装restic 用于备份和恢复几乎任何类型的 Kubernetes 卷(不支持hostPath),用这个会比较方便
查看安装情况
1 |
|
测试
1 |
|
不带PV备份
1 |
|
带pv备份
example.yaml
1 |
|
执行
1 |
|
api测试
backup
- backup-reference
- backup-hooks hook用于快照
- backup-api
1 |
|
restore
1 |
|