Микросервисные БД с Kubernetes, Postgres и CloudNativePG
Перевод статьи Gabriele Bartolini о том, почему PostgreSQL в Kubernetes уместен, что такое микросервисная БД и какую роль здесь играет CloudNativePG.
Все статьи с тегом "Postgres"
Перевод статьи Gabriele Bartolini о том, почему PostgreSQL в Kubernetes уместен, что такое микросервисная БД и какую роль здесь играет CloudNativePG.
Поднимаем локальную песочницу для CloudNativePG за несколько минут: kind для локального Kubernetes, установка оператора, первый PostgreSQL-кластер, плагин cnpg для kubectl.
Разбираем, какие ConfigMaps, Secrets и глобальные объекты PostgreSQL автоматически создаются вместе с кластером CloudNativePG: TLS-сертификаты, mTLS для replication, пользователь app и БД app.
Почему в CloudNativePG у пользователя postgres по умолчанию нет сетевого доступа, как устроен pg_hba и когда стоит включать enableSuperuserAccess.
Запускаем pgAdmin4 рядом с кластером CloudNativePG в режиме desktop одной командой плагина cnpg для evaluation/demo/учебных задач.
Как через логическую репликацию и плагин cnpg перевезти PostgreSQL из RDS, виртуалки или другого Kubernetes-оператора в CloudNativePG практически без простоя приложения.
Часть 1 истории про вертикальное масштабирование Postgres в Kubernetes: отдельный volume для WAL, временные tablespaces, разделение I/O для таблиц и индексов.
Часть 2: горизонтальное партиционирование таблиц в PostgreSQL и связка с tablespaces для разнесения горячих и холодных данных по разным storage-классам.
Поднимаем кластер CloudNativePG на бета-образах PostgreSQL 17 для участия в тестировании major-релиза. Подходит и как шаблон для тестов будущих версий.
Десятилетие Kubernetes глазами автора CloudNativePG: почему БД переезжают в Kubernetes, чем оператор отличается от голых VM, что нужно DBA, инфраструктурным и продуктовым командам.
CloudNativePG 1.24 умеет декларативный switchover между Kubernetes-кластерами в разных регионах через demotion/promotion-токены. Разбор на примере банка с двумя ЦОДами в Европе.
Какие Service'ы и PVC создаёт CloudNativePG для PostgreSQL-кластера: -rw / -ro / -r сервисы, label-selector для primary, PVC для PGDATA / WAL / tablespaces.
Как создать многонодовый Kubernetes-кластер в Kind с выделенными узлами для PostgreSQL, используя node labels и nodeSelector для изоляции рабочих нагрузок.
Как использовать taints, tolerations и pod anti-affinity для полной изоляции PostgreSQL-инстансов на выделенных узлах Kubernetes — поверх node labels из Рецепта 10.
Как использовать managed services и service templates в CloudNativePG 1.24 для создания LoadBalancer-сервиса и подключения к PostgreSQL извне кластера Kubernetes.
Как настроить синхронную репликацию в CloudNativePG 1.24: quorum-based и priority-based методы, synchronous_commit и баланс между долговечностью данных и производительностью.
Три CLI-утилиты, которые сильно ускоряют ежедневную работу с CloudNativePG: view-secret для расшифровки secret'ов, view-cert для инспекции TLS-сертификатов и stern для одновременного просмотра логов с нескольких подов.
Декларативный online major-апгрейд PostgreSQL 15 → 17 средствами CloudNativePG 1.25: новые ресурсы Publication и Subscription, импорт схемы через bootstrap, проверка синхронизации данных.
Новая опция dataDurability в CloudNativePG 1.25: required vs preferred. Как мигрировать с deprecated minSyncReplicas / maxSyncReplicas без потери self-healing.
Как PostgreSQL extension_control_path и Kubernetes ImageVolume вместе решают проблему расширений в иммутабельных контейнерах: расширения как отдельные OCI-образы, монтируемые декларативно через CloudNativePG.
CloudNativePG 1.26: декларативный in-place major-апгрейд PostgreSQL. Меняешь imageName в манифесте — оператор сам прогоняет pg_upgrade --link. Тест на 2.2 ТБ: апгрейд за 33 секунды.
Декларативная установка pgvector в PostgreSQL-кластер на Kubernetes через ресурс Database из CloudNativePG. Без ручного CREATE EXTENSION.
CloudNativePG 1.26: расширенные startup-пробы для Postgres. Базовый и продвинутый режимы, стратегии pg_isready / query / streaming, контроль допустимого лага через maximumLag.
CloudNativePG 1.26: расширенные readiness-пробы. Стратегии pg_isready / query / streaming, тонкая настройка для реплик с maximumLag, опасность flapping при синхронной репликации.
CloudNativePG 1.27: liveness-пробы для PostgreSQL. Новый primary isolation check уменьшает окно split-brain до ~30 секунд через built-in аналог Patroni failsafe mode — без внешних зависимостей.
PostgreSQL 18 вышел 25 сентября 2025: async I/O, B-tree skip scans, OAuth 2.0, extension_control_path. Минимальный образ — на 45% меньше, чем для 17. Деплой через CloudNativePG в три шага.
Уход с Docker Hub postgres на собственный supply chain CloudNativePG: Snyk, cosign-подписи, SBOM, multi-arch. Image Catalogs позволяют декларативно управлять PostgreSQL-образами в кластерах без жёстких имён. Spread upgrades для парков БД.
Реальная практика того, что обещали в «Иммутабельном будущем расширений»: PostgreSQL 18 + Kubernetes ImageVolume + CloudNativePG 1.27. Расширения — отдельные OCI-образы (pgvector ~613KB), монтируются в минимальный operand (260MB) без пересборки. Полный пример с pgvector и PostGIS.
Пошаговое руководство по миграции кластера PostgreSQL 17 под управлением Crunchy PGO v6 на PostgreSQL 18 под управлением CloudNativePG. Рассматриваются два пути: офлайн-миграция через pg_dump и онлайн-миграция через логическую репликацию.
CloudNativePG 1.30: новый CRD DatabaseRole выносит роли из спеки Cluster в отдельный namespaced-ресурс, а встроенная выдача TLS-клиентских сертификатов позволяет подключаться к PostgreSQL вообще без паролей. Полный рабочий пример с pg_hba и cert-аутентификацией.
Что умеет cnpg-плагин для kubectl: status, restart, promote, hibernate, backup, fio, pgbench, psql, pgadmin4, логическая репликация (publication/subscription) и многое другое. Установка через krew, разбор каждой команды с примерами.
Перевод: Database Connections & Connection Pooling — Sagar Shiroya, 18 апреля 2026. Что такое соединение (connection)? Когда приложение …
Перевод и адаптация серии статей Gabriele Bartolini (EDB / CloudNativePG Maintainer) о запуске PostgreSQL в Kubernetes: от микросервисной парадигмы и локальной песочницы до миграций ~0 downtime, вертикального масштабирования и распределённых топологий.
Аргументы в пользу вертикального масштабирования Если вы читали какие-либо статьи или книги по проектированию систем, то, вероятно, знаете, …
Перевод статьи Grigory Pshekovich: parallel dump, исключение лишних таблиц, выбор уровня сжатия, расписание под low-activity и бинарные форматы вместо plain SQL.
Введите ключевые слова для поиска статей