首先我们来创建
git clone https://github.com/pieterlange/kube-backup.git
kubectl create ns kube-backup
sed -i 's#namespace: kube-system#namespace: kube-backup#g' *.yaml
ssh-keygen -t rsa -f ./id_rsa -N ''
如果使用的是本地的 gitlab 需要添加 known_hosts
ssh-keyscan 192.168.194.203 > known_hosts
如果是github
ssh-keyscan github.com > known_hosts
把私钥写进 secrets
kubectl create secret generic kube-backup-ssh -n kube-backup --from-file=id_rsa --from-file=known_hosts
把公钥加到 github
修改下面两个文件中的git地址部分
cronjob-codecommit.yaml
cronjob-ssh.yaml
有可能需要修改 cronjob
apiVersion: batch/v1beta1
kind: CronJob
kubectl apply -f rbac.yaml
kubectl apply -f job-cleanup.yaml
kubectl apply -f cronjob-codecommit.yaml
kubectl apply -f cronjob-ssh.yaml
默认job是 10分钟启动一次
可以看到 yamls 文件已经提交到了 github
我们的集群上的 wordpress 也被正确备份了
每10分钟一次 */10 * * * * 这个频率对于我们太高了,调整到 每天 凌晨 1点
0 1 * * * ?
或者每个星期一次
0 1 * * MON