Оригинал: Run PostgreSQL 18 on Kubernetes Today with CloudNativePG — 26 сентября 2025.
PostgreSQL 18 вышел 25 сентября 2025 — с серьёзными улучшениями в производительности, аутентификации и безопасности. CloudNativePG и обновлённый postgres-containers уже позволяют запустить PG 18 в Kubernetes сегодня — на минимальном образе примерно вдвое меньше, чем у 17.
Что нового в PostgreSQL 18
Асинхронный I/O. Подсистема async I/O даёт прирост на I/O-bound операциях: sequential scans, VACUUM, bitmap heap scans.
B-tree skip scans. Multi-column индексы теперь работают без предиката на ведущий столбец — потенциально это сильное сокращение требований к storage для очень больших БД.
OAuth 2.0 для аутентификации. Современная интеграция с корпоративной identity-инфраструктурой.
extension_control_path — Bartolini выделяет это отдельно как «критический шаг для будущего PostgreSQL в cloud-native, иммутабельной инфраструктуре». Параметр позволяет указать доверенные директории с control-файлами расширений — то, что ровно ложится в декларативный подход CloudNativePG (см. «Иммутабельное будущее расширений»).
Прочее:
postgres_fdwтеперь умеет client-side SCRAM-аутентификацию forwarding;- новая функция
fips_mode(); - MD5-аутентификация объявлена deprecated — пора переходить на SCRAM.
CloudNativePG и postgres-containers
Архитектурные изменения в postgres-containers сильно ужали минимальный образ:
| Версия | Размер минимального образа |
|---|---|
| 17 | ~412 МБ |
| 18 | ~232 МБ |
Что изменилось: пакет postgresql-18-jit (с поддержкой LLVM JIT) переехал из minimal-образа в standard. Minimal теперь действительно minimal — быстрее pull, меньше attack surface.
Поднимаем кластер PostgreSQL 18
Предусловие: Kubernetes-кластер (проще всего — kind, см. Рецепт 1).
1. Манифест angus.yaml
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: angus
spec:
instances: 3
imageName: ghcr.io/cloudnative-pg/postgresql:18-minimal-trixie
storage:
size: 1Gi2. Применяем
kubectl apply -f angus.yaml3. Проверяем статус и версию
kubectl cnpg status angus
kubectl cnpg psql angus -- -c 'SELECT version()'Ожидаемый вывод:
version
--------------------------------------------------------------------------------------------------------------------------
PostgreSQL 18.0 (Debian 18.0-1.pgdg13+3) on aarch64-unknown-linux-gnu, compiled by gcc (Debian 14.2.0-19) 14.2.0, 64-bit
(1 row)Выводы
PostgreSQL 18 доступен в Kubernetes сразу же после релиза — благодаря тесной кооперации сообщества CloudNativePG и upstream-проекта PostgreSQL. Это позволяет CNPG-команде заранее видеть и формировать критичные для cloud-native фичи — такие как extension_control_path, который завтра кардинально упростит работу с расширениями (см. «Иммутабельное будущее расширений» и Рецепт 18 про pgvector).