Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки

Как проверить работоспособность модуля?

Для этого необходимо проверить состояние conditions ресурса Postgres в пользовательском неймспейсе. Все Type должны быть в статусе True

kubectl -n <users-ns> get postgres <cluster_name> -owide -w

Какие версии PostgreSQL поддерживаются модулем?

См. Поддерживаемые версии PostgreSQL.

Как подключиться к базе данных в PG-кластере?

Для подключения к базе данных в namespace PG-кластера доступны сервисы:

rw сервис - d8ms-pg-<cluster_name>-rw, который всегда указывает на master и позволяет выполнять операции чтения/записи. ro сервис - d8ms-pg-<cluster_name>-ro, который указывает на реплики (если параметр type: Cluster) и позволяет выполнять только операции чтения с реплики. r сервис - d8ms-pg-<cluster_name>-r, который указывает как на master, так и на реплики (если параметр type: Cluster) и позволяет выполнять только операции чтения со случайно-выбранного instance’а.

В случае создания пользователя с указанием поля storeCredsToSecret, в namespaced секрете с соответствующим именем будет храниться строка подключения в формате <db_name>-dsn

  test-dsn: 'host=d8ms-pg-test-rw;port=5432;dbname=test;user=test-ro;password=123'

Закончилось/мало места на диске одного из pod’ов PG-кластера

Когда на диске одного из pod’ов не хватает места для создания нового файла WAL, то процесс Postgres в этом pod’е будет принудительно остановлен, а при старте pod’а в логах будет сообщение о нехватке места

{"level":"info","ts":"2026-03-23T08:44:11.161864717Z","msg":"Checking for free disk space for WALs before starting PostgreSQL","logger":"instance-manager","logging_pod":"d8ms-pg-staging-postgres-4"}
{"level":"info","ts":"2026-03-23T08:44:11.174976009Z","msg":"Detected low-disk space condition, avoid starting the instance","logger":"instance-manager","logging_pod":"d8ms-pg-staging-postgres-4"}

и pod “повиснет” в состоянии CrashLoopBackoff.

Чтобы исправить такое поведение, нужно добавить места на дисках pod’ов. Далее приведены рекомендации, как это сделать.

  1. Получите информацию по PVC, в котором мало места:
kubectl get pvc -A -l cnpg.internal.managed.deckhouse.io/instanceName=<имя зависшего pod'а>
  1. Убедитесь, что в StorageClass, с которым создан PVC, включен параметр allowVolumeExpansion:

    kubectl get storageclass -o jsonpath='{$.allowVolumeExpansion}' <имя storageclass из PVC>
  2. Увеличьте в CR Postgres для нужного PG-кластера значение в параметре spec.instance.persistentVolumeClaim.size.

  3. Подождите, пока изменится значение (на указанное в ресурсе Postgres) в поле CAPACITY у PVC из шага 1.

  4. Рестартаните (через kubectl delete pod) зависший pod.

Pod должен успешно запуститься и синхронизироваться с primary.