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
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: nfs-ssd-configs
|
||||
namespace: backups
|
||||
name: postgres-backup-pv
|
||||
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
|
||||
storage: 7Ti
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
mountOptions:
|
||||
- rw
|
||||
- sync
|
||||
- hard
|
||||
- nfsvers=4.1
|
||||
- rsize=1048576
|
||||
- wsize=1048576
|
||||
- noatime
|
||||
- vers=4.2
|
||||
- nodiratime
|
||||
- tcp
|
||||
- intr
|
||||
nfs:
|
||||
path: /backups
|
||||
server: 192.168.0.100
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
csi:
|
||||
driver: nfs.csi.k8s.io
|
||||
volumeHandle: nfs-nas-git
|
||||
volumeAttributes:
|
||||
server: 192.168.0.100
|
||||
share: /git
|
||||
|
||||
volumeMode: Filesystem
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: nfs-nas-backups
|
||||
namespace: backups
|
||||
name: postgres-backup-pvc
|
||||
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
|
||||
resources:
|
||||
requests:
|
||||
storage: 7Ti
|
||||
volumeName: postgres-backup-pv
|
||||
storageClassName: ""
|
||||
volumeMode: Filesystem
|
||||
|
||||
---
|
||||
|
||||
|
||||
# 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