velero备份恢复

现在我们的kube-damo名称空间内,我部署了两个服务,redis,mongodb

 

[root@master ~]# velero  backup create  redis-backup --include-namespaces kube-damo
Backup request "redis-backup" submitted successfully.
Run `velero backup describe redis-backup` or `velero backup logs redis-backup` for more details.

其中我们指定的 --default-volumes-to-restic 参数表示使用 restic 备份持久卷到 minio,--include-namespaces 用来备份该命名空间下的所有资源,不包括集群资源,此外还可以使用 --include-resources 指定要备份的资源类型 ,--include-cluster-resources 指定是否备份集群资源。

该命令请求创建一个对项目(命名空间)的备份,备份请求发送之后可以用命令查看备份状态,等到 STATUS 列变为 Completed 表示备份完成。

 

 

下面是删除namespace模拟发生事故之后,使用备份做恢复

[root@master ~]# kubectl delete namespace dev-velero
namespace "dev-velero" deleted

备份恢复命令 [root@master
~]# velero restore create --from-backup redis-backup Restore request "redis-backup-20211119152153" submitted successfully. Run `velero restore describe redis-backup-20211119152153` or `velero restore logs redis-backup-20211119152153` for more details.

[root@master ~]# velero restore get
NAME BACKUP STATUS STARTED COMPLETED ERRORS WARNINGS CREATED SELECTOR
redis-backup-20211119152153 redis-backup Completed 2021-11-19 15:21:53 +0800 CST 2021-11-19 15:21:55 +0800 CST 0 4 2021-11-19 15:21:53 +0800 CST <none>


[root@master ~]# velero restore describe redis-backup-20211119152153
Name: redis-backup-20211119152153
Namespace: velero
Labels: <none>
Annotations: <none>


Phase: Completed
Total items to be restored: 22
Items restored: 22


Started: 2021-11-19 15:21:53 +0800 CST
Completed: 2021-11-19 15:21:55 +0800 CST
Warnings: <error getting warnings: Get "http://minio.velero.svc:9000/velero/restores/redis-backup-20211119152153/restore-redis-backup-20211119152153-results.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minio%2F20211119%2Fminio%2Fs3%2Faws4_request&X-Amz-Date=20211119T073610Z&X-Amz-Expires=600&X-Amz-SignedHeaders=host&X-Amz-Signature=ea6171aa6cad05636c87a3226ea3dadbeb1a99db0eb4c0a747b9992e54629fa3": dial tcp: lookup minio.velero.svc on 202.96.209.133:53: no such host>


Errors: <error getting errors: Get "http://minio.velero.svc:9000/velero/restores/redis-backup-20211119152153/restore-redis-backup-20211119152153-results.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minio%2F20211119%2Fminio%2Fs3%2Faws4_request&X-Amz-Date=20211119T073610Z&X-Amz-Expires=600&X-Amz-SignedHeaders=host&X-Amz-Signature=ea6171aa6cad05636c87a3226ea3dadbeb1a99db0eb4c0a747b9992e54629fa3": dial tcp: lookup minio.velero.svc on 202.96.209.133:53: no such host>


Backup: redis-backup


Namespaces:
Included: all namespaces found in the backup
Excluded: <none>


Resources:
Included: *
Excluded: nodes, events, events.events.k8s.io, backups.velero.io, restores.velero.io, resticrepositories.velero.io
Cluster-scoped: auto


Namespace mappings: <none>


Label selector: <none>


Restore PVs: auto


Preserve Service NodePorts: auto

 

查看dev-velero namespace,发现服务已经恢复

 备份是以namespace为单位,不是单个pod。

   3、定期备份

# 每日1点进行备份
velero create schedule <SCHEDULE NAME> --schedule="0 1 * * *"
# 每日1点进行备份,备份保留72小时
velero create schedule <SCHEDULE NAME> --schedule="0 1 * * *" --ttl 72h
# 每5小时进行一次备份
velero create schedule <SCHEDULE NAME> --schedule="@every 5h"
# 每日对 指定 namespace 进行一次备份 (如panshi-qtc-dev)
velero create schedule <SCHEDULE NAME> --schedule="@every 24h" --include-namespaces panshi-qtc-dev

#定时备份脚本

[root@master velero]# cat backup.sh
#!/bin/bash

for i in $( kubectl get namespace |grep -E '^dev|^test' |awk '{print $1}' )
do
velero create schedule $i --schedule="0 1 * * *" --ttl 72h
echo $i 备份成功
done

 



4、资源查看
velero  get  backup   #备份查看
velero  get  schedule #查看定时备份
velero  get  restore  #查看已有的恢复
velero  get  plugins  #查看插件

 

posted @ 2021-11-16 18:22  岁月静好·  阅读(610)  评论(0)    收藏  举报