add db backup

This commit is contained in:
2020-12-23 19:37:07 +11:00
parent 5268c3efa0
commit 5df2a9bf0e
+120
View File
@@ -0,0 +1,120 @@
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: etcd-snapshot
namespace: default
spec:
schedule: "0 5 * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: backup
# Same image as in /etc/kubernetes/manifests/etcd.yaml
image: k8s.gcr.io/etcd:3.4.3-0
env:
- name: ETCDCTL_API
value: "3"
command: ["/bin/sh"]
args: ["-c", "etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key=/etc/kubernetes/pki/etcd/healthcheck-client.key snapshot save /backup/etcd/snapshot-$(date +%Y-%m-%d_%H-%M-%S_%Z).db"]
volumeMounts:
- mountPath: /etc/kubernetes/pki/etcd
name: etcd-certs
readOnly: true
- mountPath: /backup/etcd
subPath: etcd
name: backup
hostNetwork: true
restartPolicy: Never
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/master
operator: Exists
tolerations:
- effect: NoSchedule
operator: Exists
volumes:
- name: etcd-certs
hostPath:
path: /etc/kubernetes/pki/etcd
type: Directory
- name: backup
persistentVolumeClaim:
claimName: backups-nfs-pvc
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: pg-bakcup
namespace: default
spec:
schedule: "0 6 * * *"
jobTemplate:
spec:
template:
spec:
nodeSelector:
dell: "true"
containers:
- name: backup
# Same image as in /etc/kubernetes/manifests/etcd.yaml
image: postgres:11
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql-credentials
key: password
- name: DB_USER
value: postgres
- name: DB_HOST
value: home.toozhao.com
command: ["/bin/sh"]
args: ["-c", "PGPASSWORD=$DB_PASSWORD pg_dumpall -c -h $DB_HOST -p 32222 -U $DB_USER| gzip > /backups/postgres/dump-$(date +%Y-%m-%d_%H-%M-%S_%Z).tar.gz"]
volumeMounts:
- mountPath: /backups/postgres
subPath: postgres
name: backup
hostNetwork: true
restartPolicy: Never
tolerations:
- effect: NoSchedule
operator: Exists
volumes:
- name: backup
persistentVolumeClaim:
claimName: backups-nfs-pvc
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: backups-nfs
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteMany
nfs:
server: 192.168.1.4
path: "/backups"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: "default"
name: "backups-nfs-pvc"
spec:
storageClassName: ""
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi