Kubernetes исполнилось 10: где сейчас PostgreSQL?

Десятилетие Kubernetes глазами автора CloudNativePG: почему БД переезжают в Kubernetes, чем оператор отличается от голых VM, что нужно DBA, инфраструктурным и продуктовым командам.
Опубликовано:

Оригинал: Kubernetes Just Turned Ten: Where Does PostgreSQL Stand? — 25 июня 2024.

Kubernetes исполнилось 10 лет, и его внедрение только разгоняется. Организации мигрируют целые ЦОДы и облачные регионы под единый API — Infrastructure as Code, переносимость между private/public/hybrid/multi-cloud, защита от vendor lock-in.

Базы данных приходят в Kubernetes

Workload-ы баз данных стали критическим use case Kubernetes — особенно с волной AI-приложений. Расширяемость PostgreSQL и экстеншены вроде pgvector сильно ускорили принятие. Лозунги «PostgreSQL for everything» (Timescale) и «Just use Postgres» (EDB) разошлись по соцсетям. В 2023 PostgreSQL получил «Database of the Year».

Цитата Simon Riggs (PGConf Europe, декабрь 2023):

«Most, if not all, database use cases can be met by Postgres (plus Extensions).»

Автор смотрит на момент с 5-летней дистанции своего пути с Postgres-on-Kubernetes — с 2019 года в 2ndQuadrant, потом CloudNativePG, CNCF и DoK Community.

Ликбез: Kubernetes и Cloud Native

Kubernetes даёт стандартный API не только для инфраструктуры, но и для запуска контейнеров. Где именно физически — становится не важно: контейнеры — это «cattle, not pets».

Кластер Kubernetes = control plane + worker nodes, обычно по нескольким availability zones. Базовые ресурсы:

Вокруг Kubernetes — экосистема CNCF: Prometheus/OpenTelemetry/Fluentd, Argo/Flux, cert-manager/Istio/Falco/OPA. Стандарты OCI и CSI задают «контракт» для контейнеров и storage.

База данных в этой экосистеме много лет считалась чужаком — но AI-волна и операторный паттерн поменяли картину.

Ликбез: Kubernetes vs VM

Главное отличие — VM запускает ОС, Kubernetes запускает контейнеризованные приложения и оркестрирует их. VM не управляет приложениями внутри себя.

Deployment в Kubernetes реагирует на ожидаемые и неожиданные события: drain ноды → workload переносится; падение ноды → self-healing; снижение нагрузки → автоскейлинг вниз. Это ресурс-эффективнее и дешевле, чем VM, и контейнеры не тащат с собой целую ОС.

Kubernetes занимается и Day-2: апгрейды, business continuity, IaC. VM требуют отдельного софта поверх. Контейнеры immutable — обновление = замена образа в rolling-update; статус кластера = состояние всей инфраструктуры в один момент времени.

VM можно положить в любое облако, но «портабельность» в каждое облако — отдельная история. Kubernetes-сервис есть у всех major-провайдеров → инфраструктура реально портабельна.

Operator pattern критичен для БД

Стандартных ресурсов Kubernetes для БД мало. Сила Kubernetes — operator pattern: можно «научить» Kubernetes понимать сложные приложения вроде PostgreSQL.

Автор настоятельно не рекомендует тащить прод-БД в Kubernetes без оператора, который понимает primary/standby, делает автофейловер, switchover, fencing, hibernation, бэкапы и PITR, повышает безопасность по умолчанию и интегрируется с Prometheus/Grafana/Fluentbit.

Цитата Michelle Au (Google, Kubernetes Storage):

«Kubernetes has come a long way from “no way I would run a database on Kubernetes” to “I’m running databases at petabyte scale with automated rolling upgrades."»

Автор — мейнтейнер CloudNativePG, в основе которого ~20 лет опыта эксплуатации mission-critical Postgres из EDB / 2ndQuadrant.

Где сейчас Postgres-в-Kubernetes (мнение автора)

Холистический подход CloudNativePG даёт результаты. В отличие от большинства операторов, CNPG спроектирован с нуля под Kubernetes-аудиторию: «Bringing Postgres to Kubernetes».

CNPG — это не просто оператор, а database management platform: Kubernetes сам понимает PostgreSQL-кластер без внешних инструментов (Patroni, repmgr) для primary election, async/sync репликации, фейловера, switchover, backup/restore, мониторинга, certificate management.

CNPG напрямую управляет PVC через storage classes без StatefulSet, поддерживает volume snapshot backup/restore, статус кластера хранит в Kubernetes. Security-by-default — критическое преимущество.

Команда CloudNativePG активно участвует в DoK Community, CNCF TAG Storage, Kubernetes storage project. EDB опенсорснула CNPG в мае 2022 под Apache 2.0; vendor-neutral, под open governance, без принадлежности компании.

CloudNativePG — один из самых обсуждаемых database operator на KubeCon и Kubernetes Community Days последних лет.

PostgreSQL-сообщество

Сейчас не хватает Postgres-экспертизы в Kubernetes-стеке. Это огромная возможность для DBA: программы и материалы, объясняющие сходства/различия между «классической» инфраструктурой (VM/bare metal) и Kubernetes.

Энтерпрайз-инфраструктура

Команды, которые управляют Kubernetes в больших компаниях, часто не знают, что в нём можно держать БД. Они предпочитают DBaaS (если нет своих DBA) или классические VM/железо. Не хватает технических материалов для solution architects.

Особенно интересно с точки зрения CIO в Европе: open-source мандаты и EU Data Act → организация остаётся хозяином своих данных. Стек Postgres + Kubernetes + CloudNativePG — отличный кандидат.

Команды разработки

Разработчики уже пишут под контейнеры, но часто не понимают, что PostgreSQL может быть микросервисной БД в Kubernetes — а не «чем-то снаружи приложения». Включение PostgreSQL в свои CI/CD-пайплайны даёт скорость и надёжность.

Выводы

Главные причины, почему компании уходят в Kubernetes:

PostgreSQL отлично ложится в каждый из этих пунктов. Kubernetes на десятилетие совпадает с пятилетием инициативы Cloud Native PostgreSQL (с августа 2019 в 2ndQuadrant). Ждём следующих 5 лет инноваций.

Цитата Wei-Yen Tan (Senior Platform Engineer, Datacom NZ):

«We chose to implement CNPG in our client’s production environment to manage high-volume daily transactions across multiple locations. This component is critical to our operations.»

Начать поиск

Введите ключевые слова для поиска статей

↑↓
ESC
⌘K Горячая клавиша