Resource nubes_postgres · Service ID: 90 · Service Name: PostgreSQL¶
Manual · Create params · Modify params · Output params · Operations · Example
MAN¶
Инструкция по развертыванию PostgreSQL через платформу¶
1. Общая информация¶
PostgreSQL — это надёжная объектно-реляционная СУБД с открытым исходным кодом, поддерживающая расширенный набор функций, транзакции и хранение сложных типов данных. Развёртывание полностью автоматизировано платформой на базе Zalando Postgres Operator с использованием Kubernetes.
Доступные операции¶
- create — Создание кластера
- delete — Удаление кластера
- modify — Модификация кластера
- suspend — Остановка кластера
- resume — Запуск кластера
- restart — Перезапуск кластера
-
recovery — Восстановление из резервной копии
-
create_user — Создание пользователя
-
delete_user — Удаление пользователя
-
create_database — Создание базы данных
- delete_database — Удаление базы данных
2. Параметры развертывания кластера¶
Ниже перечислены параметры, которые необходимо указать при создании ресурса PostgreSQL:
-
Платформа для развертывания: Платформа для развертывания (среда, в которой будет развернут кластер). Пример:
k8s-3.ext.nubes.ru. -
Количество узлов в сети: Количество инстансов (реплик) в кластере PostgreSQL. Пример:
2(master + slave). -
Квота (megabyte) памяти пода: Квота памяти пода в мегабайтах. Пример:
2048 -
Квота (millicore) ядра пода: Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример:
1000 -
Размер (gigabyte) диска для базы данных: Размер диска для хранения данных в гигабайтах. Пример:
20 -
Выделяет внешний IP для доступа к master: Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример:
trueилиfalse -
Имя ipSpace для публикации внешнего IP master: Если включен предыдущий параметр, то поле необходимо заполнить. Пример:
internet-no-antiddos-v1 -
Выделяет внешний IP для доступа к slave: Флаг для выделения внешнего IP для slave (реплики чтения). Работает, если slave присутствует в кластере.
-
Имя ipSpace для публикации внешнего IP slave: Если включен параметр для slave, то поле необходимо заполнить.
-
UUID экземпляра услуги S3: UUID экземпляра S3 для хранения резервных копий.
-
Версия PostgreSQL: Версия PostgreSQL для развертывания. Пример:
16 -
Расписание бэкапов (ext_BACKUP_SCHEDULE): Необязательный. Cron-выражение для времени запуска бэкапов. По умолчанию:
0 0 * * *(ежедневно в полночь). -
Количество сохраняемых бэкапов (ext_BACKUP_NUM_TO_RETAIN): Необязательный. Количество сохраняемых бэкапов. По умолчанию:
7 -
PgPooler (master / slave): Флаги включения PgBouncer для подключений на запись и чтение. При включении создаётся отдельный под.
-
Разрешить подключение без SSL (allowNoSSL): По умолчанию подключение с sslmode=require. При
trueразрешается подключение без SSL. -
Автоскейлинг PV (autoScale): Включает автоскейлинг тома. Требует настройки autoScalePercentage, autoScaleTechWindow, autoScaleQuotaGb.
-
Дополнительные параметры PostgreSQL (jsonParameters): JSON с переменными конфигурации PostgreSQL. Документация: https://www.postgresql.org/docs/current/runtime-config.html
3. Выходные параметры¶
После успешного развертывания ресурса PostgreSQL платформа возвращает ряд параметров.
externalConnect¶
Внешние эндпоинты для подключения к кластеру:
- master — для операций записи (host: write.${namespace}, port: 5432)
- slave — для операций чтения (host: read.${namespace}, port: 5432)
Пример ответа платформы:
{
"slave": {
"ip": "",
"fqdn": "",
"uuid": "",
"isExternal": false
},
"master": {
"ip": "<ip>",
"fqdn": "write.<namespace>.<cluster-domain>",
"uuid": "<uuid>",
"isExternal": false
}
}
Поля: ip — внешний IP; fqdn — полное имя хоста; uuid — идентификатор; isExternal — признак внешнего доступа.
internalConnect¶
Внутренние эндпоинты (FQDN) для подключения из других сервисов внутри той же сети Kubernetes.
Пример ответа платформы:
{
"slave": "",
"master": {
"slave": "",
"master": {
"slave": "",
"master": "postgresqlk8s-master.<namespace>.svc.cluster.local"
}
}
}
Для подключения используйте значение master.master.master (host для записи) или соответствующее значение slave (host для чтения).
Для подключения используется порт 5432.
4. Управление пользователями¶
create_user — Создание пользователя¶
-
Имя пользователя (username): Имя создаваемого пользователя. Используется для подключения к базе и настройки прав. Пример:
myapp_user -
Роль (role): Тип роли пользователя. Допустимые значения:
app_user— базовые права для DML-операций (SELECT, INSERT, UPDATE, DELETE)ddl_user— расширенные права: createdb, createrole (управление базами и ролями)
Защищённые имена, которые нельзя использовать: admin, postgres, standby.
delete_user — Удаление пользователя¶
- Имя пользователя (username):
Имя удаляемого пользователя. Пример:
myapp_user
Пользователя нельзя удалить, если он является владельцем базы данных. Сначала удалите или передайте владение базами данных другому пользователю.
5. Управление базами данных¶
create_database — Создание базы данных¶
-
Имя базы данных (dbName): Название создаваемой базы данных. Пример:
myapp_db -
Владелец базы данных (dbOwner): Имя пользователя-владельца базы. Должен существовать в кластере (создан через create_user). Пример:
myapp_user
delete_database — Удаление базы данных¶
- Имя базы данных (dbName):
Название удаляемой базы данных. Пример:
myapp_db