Микросервисные БД с 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-аутентификацией.
ClusterImageCatalog теперь описывает не только образ PostgreSQL, но и совместимые с ним образы расширений. Кластер запрашивает расширение по имени, а обновление парка сводится к правке одного каталога.
OpenBao (форк Vault от Linux Foundation) хранит секреты в PostgreSQL, а кластер держит CloudNativePG: подключение по клиентским TLS-сертификатам без паролей, схема таблиц под HA-режим и подводный камень с ротацией сертификатов.
Диск PostgreSQL заполнен на 90%. Пошаговое расследование: что видит ОС, какие таблицы и индексы растут, почему VACUUM не уменьшает файл, кто держит WAL. И пять действий, которые в такой момент делают хуже.
Tiger Data перечисляет десять проблем Elasticsearch в проде и объясняет, как их избегает поиск в PostgreSQL. Проверяем каждую: половина давно неактуальна, а про главное ограничение собственного расширения статья молчит.
Как выжать максимум записи из одного primary до шардирования: асинхронный коммит, батчи и COPY, индексы, WAL и чекпоинты, партиционирование. С поправками к популярным советам и с тем, о чём обычно молчат — репликация, бэкапы, autovacuum.
Google анонсировала «PostgreSQL для агентов» в AlloyDB: эфемерные read-only песочницы поверх общего хранилища, скейл до нуля. Разбираем, в чём реальная проблема с агентами, и как добиться изоляции на своём PostgreSQL.
В патче 1.30.1 исправлены семь сценариев, в которых failover зависал, откатывался или повышал не ту реплику — включая окно, когда primary принимал запись до получения лизы. Плюс обход валидации webhook и CVE в gRPC.
PlanetScale выпустила TIN — индекс полнотекстового поиска для PostgreSQL с BM25 и цифрами в разы выше GIN. Разбираем инженерную идею с ctid и битовыми картами, и выясняем, что самостоятельно его поставить нельзя.
Релиз PostgreSQL 19 задерживается: из беты выпилили SQL/PGQ, GROUP BY ALL, онлайновые контрольные суммы и ещё девять заметных фич. Разбираем причины каждого отката, что осталось в релизе и что под вопросом.
Снапшот на том с данными и снапшот на том с WAL делаются последовательно — и описывают состояние, которого никогда не было. Разбираем VolumeGroupSnapshot (GA в Kubernetes 1.36): группы консистентности как стандартный API, манифесты и подводные камни.
pg_stat_lock, pg_stat_recovery, pg_stat_autovacuum_scores и pg_dsm_registry_allocations: что каждая показывает, какую боль убирает и где у них ограничения. Плюс главное — autovacuum в 19-й перешёл с FIFO на приоритеты.
GFM (Gorgona Failover Manager) — HA для PostgreSQL без внешнего хранилища консенсуса: выборы лидера по LSN, TCP-кворум с самофенсингом, witness-узлы и авто-восстановление через pg_rewind. Разбор архитектуры и честные ограничения.
Практический разбор десяти тем, вокруг которых крутится реальная эксплуатация PostgreSQL: MVCC и VACUUM, индексы, блокировки и DDL, уровни изоляции, пулинг соединений, WAL и репликация, планировщик, наблюдаемость, бэкапы и права. С командами и честными нюансами.
Что умеет 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, вертикального масштабирования и распределённых топологий.
Вертикальное и горизонтальное масштабирование PostgreSQL в Kubernetes на StackGres: репликация с автоматическим failover, партиционирование и шардирование с репликацией — с манифестами и проверкой на практике.
Перевод статьи Grigory Pshekovich: parallel dump, исключение лишних таблиц, выбор уровня сжатия, расписание под low-activity и бинарные форматы вместо plain SQL.
Введите ключевые слова для поиска статей