Базы данных в Kubernetes
Вопрос
Стоит ли запускать PostgreSQL в Kubernetes? Если да, то как сделать это надёжно?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Альтернатива: управляемая база в облаке, часто проще и надёжнее для небольших команд
Если в кластере, то через оператор (CloudNativePG и подобные), а не голый StatefulSet
StatefulSet даёт имена, тома и порядок, но репликацию и failover делает оператор или сама СУБД
Хранилище: быстрые диски, `WaitForFirstConsumer`, `Retain`, мониторинг заполнения
Бэкапы и PITR в объектное хранилище, регулярная проверка восстановления
Размещение: реплики по зонам (anti-affinity), PDB, Guaranteed QoS, выделенные узлы
Что могут спросить следом
- Что делает оператор, чего не делает StatefulSet?
- Как обновить версию PostgreSQL в кластере?
Разбор
Сначала спрошу, зачем. Управляемая база в облаке снимает бэкапы, обновления и переключение при отказе, и для небольшой команды это часто правильный выбор. Если база нужна в кластере, например из-за требований к размещению или стоимости, то только через зрелый оператор, например CloudNativePG, а не самописный StatefulSet. StatefulSet даёт стабильные имена, собственный том на реплику и порядок запуска, но не знает, кто мастер и как переключаться. Это делает оператор: потоковая репликация, автоматический failover, обновление версий, бэкапы. Хранилище: быстрые блочные диски, StorageClass с WaitForFirstConsumer и Retain, алерты на заполнение. Бэкапы с непрерывной архивацией WAL в объектное хранилище для восстановления на момент времени, и регулярная проверка восстановления. Размещение: реплики в разных зонах через anti-affinity, PDB, чтобы обслуживание узлов не уронило кворум, Guaranteed QoS и, возможно, выделенные узлы с taints. И мониторинг: репликационный лаг, соединения, диск.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.