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