k8s备份工具velero
官方文档:https://velero.io/docs/v1.5/index.html功能:备份群集并在丢失的情况下进行还原。将群集资源迁移到其他群集。将生产集群复制到开发和测试集群。环境信息:k8s v1.16.15minio:192.168.86.6:9000备份bucket:k8s-backup一、安装和卸载1、安装velero客户端wget https://github.com/vmwar
·
官方文档:https://velero.io/docs/v1.5/index.html
功能:
备份群集并在丢失的情况下进行还原。
将群集资源迁移到其他群集。
将生产集群复制到开发和测试集群。
环境信息:
k8s v1.16.15
minio:192.168.86.6:9000
备份bucket:k8s-backup
一、安装和卸载
1、安装velero客户端
wget https://github.com/vmware-tanzu/velero/releases/download/v1.5.3/velero-v1.5.3-linux-amd64.tar.gz
tar -xf velero-v1.5.3-linux-amd64.tar.gz
cp velero-v1.5.3-linux-amd64/velero /usr/local/bin/
2、基于minio备份
1>准备minio认证文件
cat > credentials-velero <<eof
[default]
aws_access_key_id = admin
aws_secret_access_key = admin123456
eof
3、安装velero服务端
velero install \
--provider aws \
--bucket k8s-backup \
--secret-file ./credentials-velero \
--use-volume-snapshots=false \
--plugins velero/velero-plugin-for-aws:v1.0.0 \
--backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://192.168.86.6:9000
4、卸载velero
kubectl delete namespace/velero clusterrolebinding/velero
kubectl delete crds -l component=velero
二、备份和恢复
1、备份deploy这个namespace后删除namespace
velero backup create test-backup --include-namespaces deploy
velero get backups
velero backup describe test-backup
kubectl delete ns deploy
2、恢复deploy这个namespace
velero restore create --from-backup test-backup
3、备份整个集群所有namespace、并恢复
velero backup create k8s-all-ns
kubectl delete ns deploy
velero restore create --from-backup k8s-all-ns
4、带pv的pod备份、恢复
场景1、只备份服务不备份pv的数据
在这里插入代码片
5、集群迁移
1>新集群内安装velero,配置需要和原集群内安装的velero保持一致
2>在新集群内查看获取到的备份信息:velero get backups
3>在新集群内执行恢复命令:velero restore create --from-backup k8s-all-ns
6、基于阿里云oss备份
7、定时备份策略(针对不同namespace备份和对整个集群备份,可以配合crontab使用)
#!/bin/bash
source ~/.bashrc
DATE=`date '+%Y%m%d-%H%M%S'`
for i in `kubectl get ns | awk '{print $1}'| grep -E -v 'NAME|velero'`
do
file_name="$DATE-$i"
velero create backup "k8s-$file_name" --include-namespaces $i
done
velero create backup k8s-$DATE-backup
更多推荐
已为社区贡献28条内容
所有评论(0)