本文作者:丁辉
Helm部署Velero
官方文档 Velero客户端下载 Helm仓库介绍页 Helm-Github仓库
开始部署
准备 Minio 存储
示例:
- 存储地址为:192.168.1.10
- 账户/密码:minioadmin/minioadmin
- 存储桶:backup
添加 Helm 仓库
1
2helm repo add vmware-tanzu https://vmware-tanzu.github.io/helm-charts
helm repo update编辑 values.yaml
1
vi velero-values.yaml
内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54cleanUpCRDs: true
snapshotsEnabled: false
initContainers:
- name: velero-plugin-for-aws
image: velero/velero-plugin-for-aws:latest
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: /target
name: plugins
configuration:
backupStorageLocation:
- name: default
provider: aws
bucket: backup
accessMode: ReadWrite
config:
region: minio-region
s3ForcePathStyle: true
s3Url: http://192.168.1.10:9000
publicUrl: http://192.168.1.10:9000
credentials:
useSecret: true
secretContents:
cloud: |
[default]
aws_access_key_id=minioadmin
aws_secret_access_key=minioadmin
# 配置定时备份任务 disabled 改为 false 即可启动定时任务(默认关闭)
# 特别参数解释:
# useOwnerReferencesInBackup: 设置为 false,表示在备份时不使用资源的 owner references 来确定哪些关联资源应该包括在备份中。如果设置为 true,Velero 会根据 Kubernetes 的 owner references 备份会自动包括关联资源。
# ttl: 设置备份的生存时间(Time To Live)。
# storageLocation: 指定备份数据存储的位置。
# includedNamespaces: 列出要包括在备份中的命名空间。
# includedResources: 指定备份中要包括的资源类型。
# excludedResources: 指定不包括在备份中的资源类型。
schedules:
backup:
disabled: true
schedule: "*/1 * * * *"
useOwnerReferencesInBackup: false
template:
ttl: "240h"
storageLocation: default
includedNamespaces:
- default
includedResources:
- pv,pvc
excludedResources:
- pod安装
1
2
3helm install velero vmware-tanzu/velero \
--namespace velero --create-namespace \
-f velero-values.yaml下载客户端
1
wget https://github.com/vmware-tanzu/velero/releases/download/v1.14.0/velero-v1.14.0-linux-amd64.tar.gz
解压文件
1
tar -zxvf velero-v*-linux-amd64.tar.gz
移动客户端二进制文件到可执行目录
1
mv velero-v*-linux-amd64/velero /usr/local/bin/
卸载
卸载 velero
1
helm uninstall velero -n velero
删除命名空间
1
kubectl delete ns velero
基础命令
查看所有备份
1
velero get backups
备份整个集群
1
velero backup create <backup-name>
基础参数
- 备份特定的命名空间
--include-namespaces <namespace>
- 备份特定的资源
--include-resources <resources>
- 备份多个特定的资源
--include-resources pv,pvc
- 排除特定资源
--exclude-resources <resources>
- 备份特定的命名空间
恢复整个备份
1
velero restore create --from-backup <backup-name>
恢复特定资源
--include-resources <resources>
恢复到特定命名空间
--namespace-mappings old-namespace:<new-namespace>
恢复时指定名称
这个名称有助于你后续追踪和管理这次特定的恢复操作
1
velero restore create <restore-name> --from-backup <backup-name>
删除备份
1
velero backup delete <backup-name>
删除操作时不想被提示确认,可以添加
--confirm
参数来直接删除创建定时备份
使用 Cron 表达式(可用参数和 backup 一致)
1
velero schedule create <schedule-name> --schedule="* * * * *"
- 每 24 小时备份一次
--schedule="@every 24h"
- 每一分钟执行一次
--schedule="1 * * * *"
- 每 24 小时备份一次
查看全部定时备份
1
velero get schedule
删除定时备份
1
velero schedule delete <schedule-name>
删除操作时不想被提示确认,可以添加
--confirm
参数来直接删除
I'm so cute. Please give me money.
- 本文链接: https://blog.offends.cn/Kubernetes/Helm/Helm部署Velero.html
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。