DB cronjob backup 3AM
This commit is contained in:
parent
5910b2dde5
commit
a63e21db94
2 changed files with 146 additions and 49 deletions
55
backups/postgres-backup.yaml
Normal file
55
backups/postgres-backup.yaml
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
apiVersion: batch/v1
|
||||||
|
kind: CronJob
|
||||||
|
metadata:
|
||||||
|
name: postgres-backup
|
||||||
|
spec:
|
||||||
|
schedule: "0 3 * * *"
|
||||||
|
jobTemplate:
|
||||||
|
spec:
|
||||||
|
ttlSecondsAfterFinished: 300
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: backup
|
||||||
|
image: postgres:15.2
|
||||||
|
command: ["/bin/bash", "/scripts/backup.sh"]
|
||||||
|
env:
|
||||||
|
- name: PGPASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: database-secrets
|
||||||
|
key: postgres-password
|
||||||
|
volumeMounts:
|
||||||
|
- name: script
|
||||||
|
mountPath: /scripts
|
||||||
|
- name: backup-volume
|
||||||
|
mountPath: /backups
|
||||||
|
subPath: arrDB-Backups
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
volumes:
|
||||||
|
- name: script
|
||||||
|
configMap:
|
||||||
|
name: postgres-backup-script
|
||||||
|
defaultMode: 0755
|
||||||
|
- name: backup-volume
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: postgres-backup-pvc
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: postgres-backup-script
|
||||||
|
data:
|
||||||
|
backup.sh: |
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
echo "[INFO] $(date) - Starting PostgreSQL backup"
|
||||||
|
BACKUP_FILE="/backups/pg_$(date +%F).sql"
|
||||||
|
pg_dumpall -h arr-db -p 5433 -U postgres | tee "$BACKUP_FILE"
|
||||||
|
echo "[INFO] $(date) - Backup written to $BACKUP_FILE"
|
||||||
|
echo "[INFO] $(date) - Backup size:$(sleep 5) $(du -sh "$BACKUP_FILE" | cut -f1)"
|
||||||
|
echo "[INFO] $(date) - Cleaning backups older than 7 days"
|
||||||
|
find /backups -type f -name "pg_*.sql" -mtime +7 -print -delete
|
||||||
|
echo "[INFO] $(date) - Cleanup done"
|
||||||
|
|
||||||
|
|
140
backups/pv.yaml
140
backups/pv.yaml
|
@ -1,67 +1,109 @@
|
||||||
|
# postgres-backup-pv.yaml
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolume
|
kind: PersistentVolume
|
||||||
metadata:
|
metadata:
|
||||||
name: nfs-ssd-configs
|
name: postgres-backup-pv
|
||||||
namespace: backups
|
|
||||||
spec:
|
spec:
|
||||||
capacity:
|
capacity:
|
||||||
storage: 3Ti
|
storage: 7Ti
|
||||||
accessModes:
|
|
||||||
- ReadWriteMany
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
csi:
|
|
||||||
driver: nfs.csi.k8s.io
|
|
||||||
volumeHandle: nfs-ssd
|
|
||||||
volumeAttributes:
|
|
||||||
server: 192.168.0.200
|
|
||||||
share: /SSD/media/configs
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: nfs-nas-git
|
|
||||||
namespace: backups
|
|
||||||
spec:
|
|
||||||
capacity:
|
|
||||||
storage: 3Ti
|
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteMany
|
- ReadWriteMany
|
||||||
mountOptions:
|
mountOptions:
|
||||||
- rw
|
- hard
|
||||||
- sync
|
- nfsvers=4.1
|
||||||
|
- rsize=1048576
|
||||||
|
- wsize=1048576
|
||||||
- noatime
|
- noatime
|
||||||
- vers=4.2
|
- nodiratime
|
||||||
|
- tcp
|
||||||
|
- intr
|
||||||
|
nfs:
|
||||||
|
path: /backups
|
||||||
|
server: 192.168.0.100
|
||||||
persistentVolumeReclaimPolicy: Retain
|
persistentVolumeReclaimPolicy: Retain
|
||||||
csi:
|
volumeMode: Filesystem
|
||||||
driver: nfs.csi.k8s.io
|
|
||||||
volumeHandle: nfs-nas-git
|
|
||||||
volumeAttributes:
|
|
||||||
server: 192.168.0.100
|
|
||||||
share: /git
|
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolume
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
name: nfs-nas-backups
|
name: postgres-backup-pvc
|
||||||
namespace: backups
|
|
||||||
spec:
|
spec:
|
||||||
capacity:
|
|
||||||
storage: 3Ti
|
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteMany
|
- ReadWriteMany
|
||||||
mountOptions:
|
resources:
|
||||||
- rw
|
requests:
|
||||||
- sync
|
storage: 7Ti
|
||||||
- noatime
|
volumeName: postgres-backup-pv
|
||||||
- vers=4.2
|
storageClassName: ""
|
||||||
persistentVolumeReclaimPolicy: Retain
|
volumeMode: Filesystem
|
||||||
csi:
|
|
||||||
driver: nfs.csi.k8s.io
|
---
|
||||||
volumeHandle: nfs-nas-backups
|
|
||||||
volumeAttributes:
|
|
||||||
server: 192.168.0.100
|
|
||||||
share: /backups
|
|
||||||
|
|
||||||
|
|
||||||
|
# apiVersion: v1
|
||||||
|
# kind: PersistentVolume
|
||||||
|
# metadata:
|
||||||
|
# name: nfs-ssd-configs
|
||||||
|
# namespace: backups
|
||||||
|
# spec:
|
||||||
|
# capacity:
|
||||||
|
# storage: 3Ti
|
||||||
|
# accessModes:
|
||||||
|
# - ReadWriteMany
|
||||||
|
# persistentVolumeReclaimPolicy: Retain
|
||||||
|
# csi:
|
||||||
|
# driver: nfs.csi.k8s.io
|
||||||
|
# volumeHandle: nfs-ssd
|
||||||
|
# volumeAttributes:
|
||||||
|
# server: 192.168.0.200
|
||||||
|
# share: /SSD/media/configs
|
||||||
|
#
|
||||||
|
# ---
|
||||||
|
# apiVersion: v1
|
||||||
|
# kind: PersistentVolume
|
||||||
|
# metadata:
|
||||||
|
# name: nfs-nas-git
|
||||||
|
# namespace: backups
|
||||||
|
# spec:
|
||||||
|
# capacity:
|
||||||
|
# storage: 3Ti
|
||||||
|
# accessModes:
|
||||||
|
# - ReadWriteMany
|
||||||
|
# mountOptions:
|
||||||
|
# - rw
|
||||||
|
# - sync
|
||||||
|
# - noatime
|
||||||
|
# - vers=4.2
|
||||||
|
# persistentVolumeReclaimPolicy: Retain
|
||||||
|
# csi:
|
||||||
|
# driver: nfs.csi.k8s.io
|
||||||
|
# volumeHandle: nfs-nas-git
|
||||||
|
# volumeAttributes:
|
||||||
|
# server: 192.168.0.100
|
||||||
|
# share: /git
|
||||||
|
#
|
||||||
|
# ---
|
||||||
|
# apiVersion: v1
|
||||||
|
# kind: PersistentVolume
|
||||||
|
# metadata:
|
||||||
|
# name: nfs-nas-backups
|
||||||
|
# namespace: backups
|
||||||
|
# spec:
|
||||||
|
# capacity:
|
||||||
|
# storage: 3Ti
|
||||||
|
# accessModes:
|
||||||
|
# - ReadWriteMany
|
||||||
|
# mountOptions:
|
||||||
|
# - rw
|
||||||
|
# - sync
|
||||||
|
# - noatime
|
||||||
|
# - vers=4.2
|
||||||
|
# persistentVolumeReclaimPolicy: Retain
|
||||||
|
# csi:
|
||||||
|
# driver: nfs.csi.k8s.io
|
||||||
|
# volumeHandle: nfs-nas-backups
|
||||||
|
# volumeAttributes:
|
||||||
|
# server: 192.168.0.100
|
||||||
|
# share: /backups
|
||||||
|
#
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue