optimize backup schedules: compress dumps, stagger to weekly, extend retention
- dbaas: gzip MySQL/PostgreSQL dumps, stagger to 0:30, clean old uncompressed - infra-maintenance: etcd backup daily→weekly Sunday 1am - redis: backup hourly→weekly Sunday 3am, retention 7→28 days - vault: raft backup daily→weekly Sunday 2am
This commit is contained in:
parent
6e661fdfc5
commit
e463281205
4 changed files with 13 additions and 11 deletions
|
|
@ -314,7 +314,7 @@ resource "kubernetes_cron_job_v1" "mysql-backup" {
|
|||
spec {
|
||||
concurrency_policy = "Replace"
|
||||
failed_jobs_history_limit = 5
|
||||
schedule = "0 0 * * *"
|
||||
schedule = "30 0 * * *"
|
||||
# schedule = "* * * * *"
|
||||
starting_deadline_seconds = 10
|
||||
successful_jobs_history_limit = 10
|
||||
|
|
@ -341,11 +341,12 @@ resource "kubernetes_cron_job_v1" "mysql-backup" {
|
|||
command = ["/bin/bash", "-c", <<-EOT
|
||||
set -euxo pipefail
|
||||
export now=$(date +"%Y_%m_%d_%H_%M")
|
||||
mysqldump --all-databases -u root --host mysql.dbaas.svc.cluster.local > /backup/dump_$now.sql
|
||||
mysqldump --all-databases -u root --host mysql.dbaas.svc.cluster.local | gzip -9 > /backup/dump_$now.sql.gz
|
||||
|
||||
# Rotate - delete last log file
|
||||
# Rotate — 14 day retention
|
||||
cd /backup
|
||||
find . -name "dump_*.sql" -type f -mtime +14 -delete # 14 day retention of backups
|
||||
find . -name "dump_*.sql.gz" -type f -mtime +14 -delete
|
||||
find . -name "dump_*.sql" -type f -mtime +14 -delete # clean up old uncompressed
|
||||
echo Done
|
||||
EOT
|
||||
]
|
||||
|
|
@ -1077,11 +1078,12 @@ resource "kubernetes_cron_job_v1" "postgresql-backup" {
|
|||
command = ["/bin/bash", "-c", <<-EOT
|
||||
set -euxo pipefail
|
||||
export now=$(date +"%Y_%m_%d_%H_%M")
|
||||
PGPASSWORD=$PGPASSWORD pg_dumpall -h postgresql.dbaas -U postgres > /backup/dump_$now.sql
|
||||
PGPASSWORD=$PGPASSWORD pg_dumpall -h postgresql.dbaas -U postgres | gzip -9 > /backup/dump_$now.sql.gz
|
||||
|
||||
# Rotate - delete last log file
|
||||
# Rotate — 14 day retention
|
||||
cd /backup
|
||||
find . -name "dump_*.sql" -type f -mtime +14 -delete # 14 day retention of backups
|
||||
find . -name "dump_*.sql.gz" -type f -mtime +14 -delete
|
||||
find . -name "dump_*.sql" -type f -mtime +14 -delete # clean up old uncompressed
|
||||
echo Done
|
||||
EOT
|
||||
]
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ resource "kubernetes_cron_job_v1" "backup-etcd" {
|
|||
namespace = "default"
|
||||
}
|
||||
spec {
|
||||
schedule = "0 0 * * *"
|
||||
schedule = "0 1 * * 0"
|
||||
successful_jobs_history_limit = 1
|
||||
failed_jobs_history_limit = 1
|
||||
concurrency_policy = "Forbid"
|
||||
|
|
|
|||
|
|
@ -267,7 +267,7 @@ resource "kubernetes_cron_job_v1" "redis-backup" {
|
|||
spec {
|
||||
concurrency_policy = "Replace"
|
||||
failed_jobs_history_limit = 3
|
||||
schedule = "0 * * * *"
|
||||
schedule = "0 3 * * 0"
|
||||
starting_deadline_seconds = 10
|
||||
successful_jobs_history_limit = 3
|
||||
job_template {
|
||||
|
|
@ -290,7 +290,7 @@ resource "kubernetes_cron_job_v1" "redis-backup" {
|
|||
# Copy the RDB via redis-cli --rdb
|
||||
redis-cli -h redis.redis --rdb /backup/redis-$TIMESTAMP.rdb
|
||||
# Rotate — 7-day retention
|
||||
find /backup -name 'redis-*.rdb' -type f -mtime +7 -delete
|
||||
find /backup -name 'redis-*.rdb' -type f -mtime +28 -delete
|
||||
echo "Backup complete: redis-$TIMESTAMP.rdb"
|
||||
EOT
|
||||
]
|
||||
|
|
|
|||
|
|
@ -249,7 +249,7 @@ resource "kubernetes_cron_job_v1" "vault_backup" {
|
|||
namespace = kubernetes_namespace.vault.metadata[0].name
|
||||
}
|
||||
spec {
|
||||
schedule = "0 2 * * *"
|
||||
schedule = "0 2 * * 0"
|
||||
successful_jobs_history_limit = 3
|
||||
failed_jobs_history_limit = 3
|
||||
concurrency_policy = "Forbid"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue