Стадия жизненного цикла модуля: 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’ов. Далее приведены рекомендации, как это сделать.
- Получите информацию по PVC, в котором мало места:
kubectl get pvc -A -l cnpg.internal.managed.deckhouse.io/instanceName=<имя зависшего pod'а>-
Убедитесь, что в
StorageClass, с которым создан PVC, включен параметрallowVolumeExpansion:kubectl get storageclass -o jsonpath='{$.allowVolumeExpansion}' <имя storageclass из PVC> -
Увеличьте в CR
Postgresдля нужного PG-кластера значение в параметреspec.instance.persistentVolumeClaim.size. -
Подождите, пока изменится значение (на указанное в ресурсе
Postgres) в полеCAPACITYу PVC из шага 1. -
Рестартаните (через
kubectl delete pod) зависший pod.
Pod должен успешно запуститься и синхронизироваться с primary.