mirror of
https://github.com/wahyd4/home-docker.git
synced 2026-08-08 20:15:03 +10:00
120 lines
3.3 KiB
YAML
120 lines
3.3 KiB
YAML
apiVersion: batch/v1
|
|
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.5.1-0
|
|
env:
|
|
- name: ETCDCTL_API
|
|
value: "3"
|
|
command: ["/bin/sh"]
|
|
args: ["-c", "etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/etcd/ca.pem --cert=/etc/etcd/etcd.pem --key=/etc/etcd/etcd-key.pem snapshot save /backup/etcd/snapshot-$(printf \"%(%Y-%m-%d-%H:%M:%S_%Z)T\n\").db"]
|
|
volumeMounts:
|
|
- mountPath: /etc/etcd
|
|
name: etcd-certs
|
|
readOnly: true
|
|
- mountPath: /backup/etcd
|
|
subPath: etcd
|
|
name: backup
|
|
hostNetwork: true
|
|
restartPolicy: Never
|
|
nodeSelector:
|
|
etcd: "true"
|
|
# 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/etcd
|
|
type: Directory
|
|
- name: backup
|
|
persistentVolumeClaim:
|
|
claimName: backups-nfs-pvc
|
|
---
|
|
|
|
apiVersion: batch/v1
|
|
kind: CronJob
|
|
metadata:
|
|
name: pg-bakcup
|
|
namespace: db
|
|
spec:
|
|
schedule: "48 5 * * *"
|
|
jobTemplate:
|
|
spec:
|
|
template:
|
|
spec:
|
|
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: new-postgres-postgresql.db.svc.cluster.local
|
|
command: ["/bin/sh"]
|
|
args: ["-c", "PGPASSWORD=$DB_PASSWORD pg_dumpall -c -h $DB_HOST -p 5432 -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
|
|
restartPolicy: OnFailure
|
|
# 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: "db"
|
|
name: "backups-nfs-pvc"
|
|
spec:
|
|
storageClassName: ""
|
|
accessModes:
|
|
- ReadWriteMany
|
|
resources:
|
|
requests:
|
|
storage: 100Gi
|