Kube-backup

首先我们来创建

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 
Send a Message