¿Cuál es el mejor enfoque para hacer una copia de seguridad de Postgres en Kubernetes?
Mi primera suposición habría sido crear una arquitectura maestro-esclavo con replicación habilitada. Haciendo un pg_basebackup inicial y luego recuperando los registros WAL. Una vez al mes, habría programado otro pg_basebackup con un cron, sin embargo, a los entornos en contenedores no les gustan los demonios cron (no hay systemd disponible). ¿Cómo se programan las copias de seguridad de la base?
El mejor enfoque es utilizar el recurso Cronjob de Kubernetes:
Puede usar un CronJob para ejecutar trabajos en un horario basado en el tiempo. Estos trabajos automatizados se ejecutan como tareas de Cron en un sistema Linux o UNIX.
Los trabajos cron son útiles para crear tareas periódicas y recurrentes, como ejecutar copias de seguridad o enviar correos electrónicos.
Básicamente, necesita crear una imagen de Linux personalizada para ejecutar en sus trabajos de contenedor. Esta imagen necesitará un cliente de Postgres (para que pueda conectarse a su base de datos con psql , pg_dump o pg_basebackup ); y las credenciales que se pueden configurar como un secreto .
Es posible que desee cargar la copia de seguridad en un almacenamiento externo, de modo que pueda instalar y usar awscli para AWS S3, gsutil para Google Cloud Storage, etc.
Aquí hay algunas referencias: