需求:
- 1.在本地的
/home/wanna/k8s
目录下,存在有很多本地的很多K8S服务的资源清单,需要定时对这些服务的资源清单执行备份,避免丢失。 - 2.目前市面上K8S集群最好的部分方式是Velero,因此我们使用Velero进行全集群的资源的备份。
我们新建一个Shell脚本文件k8s-backup-global.sh
,内容修改为如下,即可实现如上两个功能:
#!/bin/bash
DATE=`date +%Y%m%d%H%M%S`
# 备份k8s集群的资源到MINIO
velero backup create k8s-main-backup-${DATE} --kubeconfig=/home/wanna/.kube/config --namespace=velero
# 创建压缩包, 备份k8s资源文件到MINIO
tar -czvf /home/wanna/k8s-${DATE}.tar.gz /home/wanna/k8s/
# 上传到MINIO
aws s3 cp /home/wanna/k8s-${DATE}.tar.gz s3://dell-server-resourceyaml-backup/ --endpoint-url http://192.168.11.168:9000 --checksum-algorithm CRC32
# 执行之后, 把压缩包删掉
rm -rf /home/wanna/k8s-${DATE}.tar.gz
我们使用如下的命令,编辑Linux系统的定时任务crontab。
crontab -e
在最后新增一行如下的配置文件:
0 5 * * * /home/wanna/k8s-backup/k8s-backup-global.sh
其中0 5 * * *
这部分配置的是Cron表达式,表示每天凌晨5点执行这个定时任务脚本。
评论