1 line
13 KiB
JSON
1 line
13 KiB
JSON
{"queryDurationMs":50,"svc":{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","version":"1.0.0","orchestratorName":"Pgsql","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/create/view/tags/job/1.0.0/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://upload.wikimedia.org/wikipedia/commons/2/29/Postgresql_elephant.svg","descr":"Управляемая база данных PostgreSQL","man":"# Инструкция по развертыванию PostgreSQL через платформу<br/><br/>---<br/>## 1. Общая информация<br/><br/>PostgreSQL — это надёжная объектно-реляционная СУБД с открытым исходным кодом, поддерживающая расширенный набор функций, транзакции и хранение сложных типов данных. Развёртывание полностью автоматизировано платформой на базе Zalando Postgres Operator с использованием Kubernetes.<br/><br/>## Доступные операции<br/><br/>- **create** — Создание кластера<br/>- **delete** — Удаление кластера<br/>- **modify** — Модификация кластера<br/>- **suspend** — Остановка кластера<br/>- **resume** — Запуск кластера<br/>- **restart** — Перезапуск кластера<br/>- **recovery** — Восстановление из резервной копии<br/><br/>- **create_user** — Создание пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>- **create_database** — Создание базы данных<br/>- **delete_database** — Удаление базы данных<br/><br/><br/>---<br/>## 2. Параметры развертывания кластера<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса PostgreSQL:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество инстансов (реплик) в кластере PostgreSQL. Пример: `2` (master + slave).<br/><br/>* **Квота (megabyte) памяти пода:**<br/> Квота памяти пода в мегабайтах. Пример: `2048`<br/><br/>* **Квота (millicore) ядра пода:**<br/> Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`<br/><br/>* **Размер (gigabyte) диска для базы данных:**<br/> Размер диска для хранения данных в гигабайтах. Пример: `20`<br/><br/>* **Выделяет внешний IP для доступа к master:**<br/> Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример: `true` или `false`<br/><br/>* **Имя ipSpace для публикации внешнего IP master:**<br/> Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`<br/><br/>* **Выделяет внешний IP для доступа к slave:**<br/> Флаг для выделения внешнего IP для slave (реплики чтения). Работает, если slave присутствует в кластере.<br/><br/>* **Имя ipSpace для публикации внешнего IP slave:**<br/> Если включен параметр для slave, то поле необходимо заполнить.<br/><br/>* **UUID экземпляра услуги S3:**<br/> UUID экземпляра S3 для хранения резервных копий.<br/><br/>* **Версия PostgreSQL:**<br/> Версия PostgreSQL для развертывания. Пример: `16`<br/><br/>* **Расписание бэкапов (ext_BACKUP_SCHEDULE):**<br/> Необязательный. Cron-выражение для времени запуска бэкапов. По умолчанию: `0 0 * * *` (ежедневно в полночь).<br/><br/>* **Количество сохраняемых бэкапов (ext_BACKUP_NUM_TO_RETAIN):**<br/> Необязательный. Количество сохраняемых бэкапов. По умолчанию: `7`<br/><br/>* **PgPooler (master / slave):**<br/> Флаги включения PgBouncer для подключений на запись и чтение. При включении создаётся отдельный под.<br/><br/>* **Разрешить подключение без SSL (allowNoSSL):**<br/> По умолчанию подключение с sslmode=require. При `true` разрешается подключение без SSL.<br/><br/>* **Автоскейлинг PV (autoScale):**<br/> Включает автоскейлинг тома. Требует настройки autoScalePercentage, autoScaleTechWindow, autoScaleQuotaGb.<br/><br/>* **Дополнительные параметры PostgreSQL (jsonParameters):**<br/> JSON с переменными конфигурации PostgreSQL. Документация: https://www.postgresql.org/docs/current/runtime-config.html<br/><br/>---<br/>## 3. Выходные параметры<br/><br/>После успешного развертывания ресурса PostgreSQL платформа возвращает ряд параметров.<br/><br/>#### externalConnect<br/><br/>Внешние эндпоинты для подключения к кластеру:<br/>- **master** — для операций записи (host: `write.${namespace}`, port: 5432)<br/>- **slave** — для операций чтения (host: `read.${namespace}`, port: 5432)<br/><br/>Пример ответа платформы:<br/><br/>```json<br/>{<br/> "slave": {<br/> "ip": "",<br/> "fqdn": "",<br/> "uuid": "",<br/> "isExternal": false<br/> },<br/> "master": {<br/> "ip": "<ip>",<br/> "fqdn": "write.<namespace>.<cluster-domain>",<br/> "uuid": "<uuid>",<br/> "isExternal": false<br/> }<br/>}<br/>```<br/><br/>Поля: `ip` — внешний IP; `fqdn` — полное имя хоста; `uuid` — идентификатор; `isExternal` — признак внешнего доступа.<br/><br/>#### internalConnect<br/><br/>Внутренние эндпоинты (FQDN) для подключения из других сервисов внутри той же сети Kubernetes.<br/><br/>Пример ответа платформы:<br/><br/>```json<br/>{<br/> "slave": "",<br/> "master": {<br/> "slave": "",<br/> "master": {<br/> "slave": "",<br/> "master": "postgresqlk8s-master.<namespace>.svc.cluster.local"<br/> }<br/> }<br/>}<br/>```<br/><br/>Для подключения используйте значение `master.master.master` (host для записи) или соответствующее значение slave (host для чтения).<br/><br/>Для подключения используется порт **5432**.<br/><br/>---<br/>## 4. Управление пользователями<br/><br/>### create_user — Создание пользователя<br/><br/>* **Имя пользователя (username):**<br/> Имя создаваемого пользователя. Используется для подключения к базе и настройки прав.<br/> Пример: `myapp_user`<br/><br/>* **Роль (role):**<br/> Тип роли пользователя. Допустимые значения:<br/> - `app_user` — базовые права для DML-операций (SELECT, INSERT, UPDATE, DELETE)<br/> - `ddl_user` — расширенные права: createdb, createrole (управление базами и ролями)<br/><br/>Защищённые имена, которые нельзя использовать: `admin`, `postgres`, `standby`.<br/><br/>### delete_user — Удаление пользователя<br/><br/>* **Имя пользователя (username):**<br/> Имя удаляемого пользователя. Пример: `myapp_user`<br/><br/>Пользователя нельзя удалить, если он является владельцем базы данных. Сначала удалите или передайте владение базами данных другому пользователю.<br/><br/>---<br/>## 5. Управление базами данных<br/><br/>### create_database — Создание базы данных<br/><br/>* **Имя базы данных (dbName):**<br/> Название создаваемой базы данных. Пример: `myapp_db`<br/><br/>* **Владелец базы данных (dbOwner):**<br/> Имя пользователя-владельца базы. Должен существовать в кластере (создан через create_user). Пример: `myapp_user`<br/><br/>### delete_database — Удаление базы данных<br/><br/>* **Имя базы данных (dbName):**<br/> Название удаляемой базы данных. Пример: `myapp_db`<br/>","operations":[{"svcOperationId":54,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/restart/view/tags/job/1.0.0/buildWithParameters","descr":"ВНИМАНИЕ - Редеплой предполагает УДАЛЕНИЕ подов.<br/>Может быть полная поломка. Крайне осторожно запускать при работе.<br/>Нет возможности нормально мигрировать на другую платформу средствами Redeploy, так как есть привязка к S3. <br/>Поэтому если нужно смигрировать на другой кластер Kubernetes - использовать необходимо Restore","man":"ВНИМАНИЕ - Рестарт предполагает УДАЛЕНИЕ подов.<br/>Может быть полная поломка. Крайне осторожно запускать при работе"},{"svcOperationId":114,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/resume/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":20,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/delete/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":48,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/modify/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":47,"operation":"recovery","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/recovery/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":19,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/create/view/tags/job/1.0.0/buildWithParameters","descr":"описание","man":"руководство"},{"svcOperationId":115,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/suspend/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":241,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/create_user/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":244,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/delete_user/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":245,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/create_database/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":246,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/delete_database/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null}]},"runDurationMs":51} |