

使用Velero Restic集成备份及恢复Kubernetes数据卷
source link: https://nyan.im/p/velero-restic-zh
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用Velero Restic集成备份及恢复Kubernetes数据卷
English version: Backup and Restore Kubernetes Volumes with Velero Restic Integration – Frank’s Weblog
我搭建了一个Kubernetes集群,使用OpenEBS作为存储后端。我选择了Jiva作为存储引擎,Jiva是一个高可用的存储控制器,数据被复制到所有节点。为了确保数据的安全,我使用Velero及其Restic集成将卷备份到AWS S3。
首先需要在本地电脑上安装 Velero CLI以控制Kubernetes集群上的Velero控制器,请参阅Velero Docs – Basic Install了解安装说明。
准备Kubernetes配置文件,其应位于.kube/config
并确保 kubectl get pod
返回正确的结果。
使用如下的格式创建一个AWS密钥文件,该密钥应具有访问在下一步骤中提供的S3存储桶的权限,记下该文件的路径。
[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
将Velero安装到Kubernetes集群
velero install \
--provider aws \
--plugins velero/velero-plugin-for-aws:v1.5.0 \
--bucket velero \
--secret-file /path/to/aws/cred/file \
--use-volume-snapshots false \
--use-restic \
--backup-location-config region=us-east-1
备份及还原
运行单个备份
velero backup create BACKUP_NAME \
--include-namespaces default \
--default-volumes-to-restic
创建定时备份计划
velero schedule create SCHEDULE_NAME \
--include-namespaces default \
--default-volumes-to-restic \
--schedule="@every 1h"
有关更多备份选项,请参阅 Velero Docs – Restic Integration
从备份恢复
velero restore create --from-backup BACKUP_NAME
有时直接恢复到Kubernetes集群并不能满足我们的需求。在这种情况下,我们可以直接从位于S3的备份repo中导出文件。由于Velero在其CLI中没有提供此功能,我们需要使用Restic CLI。
安装 Restic CLI
Installation — restic 0.14.0 documentation
获取快照 ID
restic snapshots -r s3:s3-us-east-1.amazonaws.com/(backup-bucket)/restic/default
该命令会返回一个快照列表,记下需要导出的快照 ID。
ed17cb1b 2022-08-28 00:00:00 velero backup=(redacted),backup-uid=(redacted),ns=default,pod=(redacted),pod-uid=(redacted),volume=etc-gitlab-runner /host_pods/(redacted)/volumes/kubernetes.io~empty-dir/etc-gitlab-runner
使用ls
命令列出快照中的文件。
restic ls -r s3:s3-us-east-1.amazonaws.com/(backup-bucket)/restic/default ed17cb1b
将文件导出到压缩文档中。
restic dump -a tar -r s3:s3-us-east-1.amazonaws.com/(backup-bucket)/restic/default 4e68ea11 / > ./dump.tar
References
[1] Velero Docs – Run Velero on AWS
[2] Backup and Restore Stateful Workloads using Velero and Restic | James McLeod
[3] Velero Docs – Restic Integration
</div
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK