velero-备份k8s数据

部署minio

docker run --name minio
-p 9000:9000
-p 9999:9999
-d --restart=always
-e "MINIO_ROOT_USER=admin"
-e "MINIO_ROOT_PASSWORD=A123456x"
-v /data/minio:/data
minio/minio:RELEASE.2023-08-31T15-31-16Z server /data
--console-address '0.0.0.0:9999'

部署同步工具--bucket velerodata

这个需要在minio创建

velero --kubeconfig /root/.kube/config
install
--provider aws
--plugins velero/velero-plugin-for-aws:v1.5.5
--image velero/velero:v1.11.1
--bucket velerodata
--secret-file ./velero-auth.txt
--use-volume-snapshots=false
--namespace velero-system
--backup-location-config
region=minio,s3ForcePathStyle="true",s3Url=http://192.168.20.125:9000

2个镜像同步到仓库

velero/velero:v1.11.1
docker.io/velero/velero-plugin-for-aws:v1.5.5

备份命令

DATE=date +%Y%m%d%H%M%S
velero backup create default-backup-${DATE}
--include-cluster-resources=true
--include-namespaces default
--kubeconfig=/root/.kube/config
--namespace velero-system

恢复

velero restore create --from-backup default-backup-20240115172942 --wait --kubeconfig=/root/.kube/config --namespace velero-system

查看备份列表

velero backup get -n velero-system

批量备份所有namespace

!/bin/bash

NS_NAME=kubectl get ns | awk '{if (NR>2){print}}' | awk '{print $1}'
DATE=date +%Y%m%d%H%M%S

cd /data/velero/

for i in $NS_NAME;do
velero backup create ${i}-ns-backup-${DATE}
--include-cluster-resources=true
--include-namespaces ${i}
--kubeconfig=/root/.kube/config
--namespace velero-system
done

posted @ 2024-01-15 17:52  taotaozh  阅读(27)  评论(0编辑  收藏  举报