[k8s] PV/PVC для PostgreSQL и CronJob бэкапов #77

Open
opened 2026-05-13 22:09:05 +03:00 by Toutsu · 0 comments
Owner

Контекст

PostgreSQL в k8s нужен PersistentVolume для сохранности данных при пересоздании pod. Также нужен CronJob для автоматических бэкапов (портировать существующую логику из compose.yaml).

Что нужно

  1. StorageClass (или использовать дефолтный host-path / local-path / cloud PVC)
  2. PersistentVolumeClaim для PostgreSQL StatefulSet
  3. CronJob для бэкапов:
    • Schedule: 0 3 * * * (каждую ночь)
    • pg_dump → gzip → сохранить в PVC /backups
    • Retention: 7 дней (или настраиваемый параметр)
  4. Restore procedure — документация или Job-манифест для восстановления из бэкапа

Варианты хранения бэкапов

  • Local PVC — просто, но при падении ноды потеряешь бэкап и данные одновременно
  • S3-compatible (minio / s3cmd / rclone) — предпочтительно для production
  • NFS / NAS — для локального кластера / Pi5

Критерии приёмки

  • БД при удалении pod StatefulSet сохраняет данные
  • CronJob ежедневно создаёт бэкап без ошибок
  • Бэкап проверен на restore (smoke-test)
  • Бэкапы не хранятся на том же диске, что и БД (или в облаке)
  • Оповещение при неуспешном бэкапе (k8s events / логи / Telegram alert)
## Контекст PostgreSQL в k8s нужен PersistentVolume для сохранности данных при пересоздании pod. Также нужен CronJob для автоматических бэкапов (портировать существующую логику из `compose.yaml`). ## Что нужно 1. **StorageClass** (или использовать дефолтный host-path / local-path / cloud PVC) 2. **PersistentVolumeClaim** для PostgreSQL StatefulSet 3. **CronJob** для бэкапов: - Schedule: `0 3 * * *` (каждую ночь) - pg_dump → gzip → сохранить в PVC `/backups` - Retention: 7 дней (или настраиваемый параметр) 4. **Restore procedure** — документация или Job-манифест для восстановления из бэкапа ## Варианты хранения бэкапов - **Local PVC** — просто, но при падении ноды потеряешь бэкап и данные одновременно - **S3-compatible** (minio / s3cmd / rclone) — предпочтительно для production - **NFS / NAS** — для локального кластера / Pi5 ## Критерии приёмки - [ ] БД при удалении pod StatefulSet сохраняет данные - [ ] CronJob ежедневно создаёт бэкап без ошибок - [ ] Бэкап проверен на restore (smoke-test) - [ ] Бэкапы не хранятся на том же диске, что и БД (или в облаке) - [ ] Оповещение при неуспешном бэкапе (k8s events / логи / Telegram alert)
Toutsu added this to the Этап — Kubernetes / k8s Production milestone 2026-05-13 22:09:05 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Toutsu/GmRelayBot#77