Управление хостами кластера PostgreSQL
Вы можете добавлять и удалять хосты кластера, а также управлять их настройками. О том, как перенести хосты кластера в другую зону доступности, читайте в инструкции.
Получить список хостов в кластере
- Перейдите в сервис Managed Service for PostgreSQL.
- Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы получить список хостов в кластере, выполните команду:
yc managed-postgresql host list \
--cluster-name <имя_кластера>
Результат:
+----------------------------+----------------------+---------+--------+--------------------+
| NAME | CLUSTER ID | ROLE | HEALTH | ZONE ID |
+----------------------------+----------------------+---------+--------+--------------------+
| rc1b***mdb.yandexcloud.net | c9qp71dk1dfg******** | MASTER | ALIVE | ru-central1-b |
| rc1a***mdb.yandexcloud.net | c9qp71dk1dfg******** | REPLICA | ALIVE | ru-central1-a |
+----------------------------+----------------------+---------+--------+--------------------+
Имя кластера можно запросить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.ListHosts и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/hosts'Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.ListHosts и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.ListHostsИдентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать хост
Количество хостов в кластерах Managed Service for PostgreSQL ограничено квотами на количество CPU и объем памяти, которые доступны кластерам БД в вашем облаке. Чтобы проверить используемые ресурсы, откройте страницу Квоты
Чтобы создать хост:
-
Перейдите в сервис Managed Service for PostgreSQL.
-
Нажмите на имя нужного кластера и перейдите на вкладку Хосты.
-
Нажмите кнопку Создать хост.
-
Укажите параметры хоста:
- Зону доступности.
- Подсеть (если нужной подсети в списке нет, создайте ее).
- Источник репликации (если вы используете каскадную репликацию).
- Выберите опцию Публичный доступ, если хост должен быть доступен извне Yandex Cloud.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы создать хост:
-
Запросите список подсетей кластера, чтобы выбрать подсеть для нового хоста:
yc vpc subnet listРезультат:
+----------------------+-----------+----------------------+---------------+-------------------+ | ID | NAME | NETWORK ID | ZONE | RANGE | +----------------------+-----------+----------------------+---------------+-------------------+ | b0cl69q1w2e3******** | default-d | enp6rq71w2e3******** | ru-central1-d | [172.16.**.**/20] | | e2lkj9q1w2e3******** | default-b | enp6rq71w2e3******** | ru-central1-b | [10.10.**.**/16] | | e9b0phq1w2e3******** | a-2 | enp6rq71w2e3******** | ru-central1-a | [172.16.**.**/20] | | e9b9v2q1w2e3******** | default-a | enp6rq71w2e3******** | ru-central1-a | [172.16.**.**/20] | +----------------------+-----------+----------------------+---------------+-------------------+Если нужной подсети в списке нет, создайте ее.
-
Посмотрите описание команды CLI для добавления хостов:
yc managed-postgresql host add --help -
Выполните команду добавления хоста:
yc managed-postgresql host add \ --cluster-name <имя_кластера> \ --host zone-id=<зона_доступности>,subnet-id=<идентификатор_подсети>Идентификатор подсети необходимо указать, если в зоне доступности больше одной подсети, в противном случае Managed Service for PostgreSQL автоматически выберет единственную подсеть. Имя кластера можно запросить со списком кластеров в каталоге.
Также вы можете указать несколько дополнительных опций в параметре
--hostдля управления публичным доступом к хосту и репликацией в кластере:- Источник репликации для хоста в опции
replication-sourceдля того, чтобы вручную управлять потоками репликации. - Доступность хоста извне Yandex Cloud в опции
assign-public-ip:true— публичный доступ включен.false— публичный доступ выключен.
- Источник репликации для хоста в опции
Managed Service for PostgreSQL запустит операцию добавления хоста.
Чтобы создать хост:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.
-
Добавьте к описанию кластера Managed Service for PostgreSQL блок
host.resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... host { name = "<имя_хоста>" zone = "<зона_доступности>" subnet_id = "<идентификатор_подсети>" replication_source_name = "<источник_репликации>" assign_public_ip = <публичный_доступ_к_хосту> } }Где:
name— имя хоста.zone— зона доступности.subnet_id— идентификатор подсети.replication_source_name— источник репликации: атрибутnameсоответствующего блокаhost.assign_public_ip— публичный доступ к хосту:trueилиfalse.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:
- создание, в том числе путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts, например:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } } -
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.AddHosts и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/hosts:batchCreate' \ --data '{ "hostSpecs": [ { "zoneId": "<зона_доступности>", "subnetId": "<идентификатор_подсети>", "assignPublicIp": <разрешить_публичный_доступ_к_хосту>, "replicationSource": "<FQDN_хоста>", "priority": "<приоритет_хоста>", "configSpec": { "postgresqlConfig_<версия_PostgreSQL>": { <настройки_PostgreSQL> } } }, { <аналогичный_набор_настроек_для_создаваемого_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_создаваемого_хоста_N> } ] }'Где
hostSpecs— массив новых хостов. Один элемент массива содержит настройки для одного хоста и имеет следующую структуру:-
zoneId— зона доступности. -
subnetId— идентификатор подсети. -
assignPublicIp— доступность хоста из интернета по публичному IP-адресу:trueилиfalse. -
replicationSource— источник репликации для хоста для ручного управления потоками репликации. В параметре укажите FQDN хоста, который будет источником репликации. -
priority— приоритет хоста среди всех хостов. -
configSpec.postgresqlConfig_<версия_PostgreSQL>— набор настроек PostgreSQL. Укажите каждую настройку на отдельной строке через запятую.Список версий PostgreSQL, доступных для параметра, см. в описании метода. Описание и возможные значения настроек см. в разделе Настройки PostgreSQL.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.AddHosts и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "host_specs": [ { "zone_id": "<зона_доступности>", "subnet_id": "<идентификатор_подсети>", "assign_public_ip": <разрешить_публичный_доступ_к_хосту>, "replication_source": "<FQDN_хоста>", "priority": "<приоритет_хоста>", "config_spec": { "postgresql_config_<версия_PostgreSQL>": { <настройки_PostgreSQL> } } }, { <аналогичный_набор_настроек_для_создаваемого_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_создаваемого_хоста_N> } ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.AddHostsГде
host_specs— массив новых хостов. Один элемент массива содержит настройки для одного хоста и имеет следующую структуру:-
zone_id— зона доступности. -
subnet_id— идентификатор подсети. -
assign_public_ip— доступность хоста из интернета по публичному IP-адресу:trueилиfalse. -
replication_source— источник репликации для хоста для ручного управления потоками репликации. В параметре укажите FQDN хоста, который будет источником репликации. -
priority— приоритет хоста среди всех хостов. -
config_spec.postgresql_config_<версия_PostgreSQL>— набор настроек PostgreSQL. Укажите каждую настройку на отдельной строке через запятую.Список версий PostgreSQL, доступных для параметра, см. в описании метода. Описание и возможные значения настроек см. в разделе Настройки PostgreSQL.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Если после добавления хоста к нему невозможно подключиться, убедитесь, что группа безопасности кластера настроена корректно для подсети, в которую помещен хост.
Изменить хост
Для каждого хоста в кластере Managed Service for PostgreSQL можно указать источник репликации и управлять публичным доступом к хосту.
Чтобы изменить параметры хоста в кластере:
-
Перейдите в сервис Managed Service for PostgreSQL.
-
Нажмите на имя нужного кластера и выберите вкладку Хосты.
-
Нажмите значок
в строке нужного хоста и выберите пункт Редактировать. -
Задайте новые настройки для хоста:
-
Выберите источник репликации для хоста для того, чтобы вручную управлять потоками репликации.
-
Включите опцию Публичный доступ, если хост должен быть доступен извне Yandex Cloud.
-
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить параметры хоста в кластере, выполните команду:
yc managed-postgresql host update <имя_хоста> \
--cluster-name <имя_кластера> \
--replication-source <имя_хоста-источника> \
--assign-public-ip=<публичный_доступ_к_хосту>
Где:
cluster-name— имя кластера.replication-source— имя хоста-источника.assign-public-ip— публичный доступ к хосту:trueилиfalse.
Имя хоста можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.
Чтобы вручную управлять потоками репликации в кластере, измените источник репликации для хоста в параметре --replication-source.
Чтобы изменить параметры хоста в кластере:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.
-
Измените в описании кластера Managed Service for PostgreSQL атрибуты блока
host, соответствующего изменяемому хосту.resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... host { replication_source_name = "<источник_репликации>" assign_public_ip = <публичный_доступ_к_хосту> } }
Где:
replication_source_name— источник репликации: атрибутnameсоответствующего блокаhost.assign_public_ip— публичный доступ к хосту:trueилиfalse.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:
- создание, в том числе путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts, например:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } } -
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.UpdateHosts и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/hosts:batchUpdate' \ --data '{ "updateHostSpecs": [ { "updateMask": "assignPublicIp,replicationSource,priority,configSpec.postgresqlConfig_<версия_PostgreSQL>", "hostName": "<FQDN_хоста>", "assignPublicIp": <разрешить_публичный_доступ_к_хосту>, "replicationSource": "<FQDN_хоста>", "priority": "<приоритет_хоста>", "configSpec": { "postgresqlConfig_<версия_PostgreSQL>": { <настройки_PostgreSQL> } } }, { <аналогичный_набор_настроек_для_изменяемого_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_изменяемого_хоста_N> } ] }'Где
updateHostSpecs— массив изменяемых хостов. Один элемент массива содержит настройки для одного хоста и имеет следующую структуру:-
updateMask— перечень изменяемых параметров в одну строку через запятую. -
hostName— FQDN изменяемого хоста. -
assignPublicIp— доступность хоста из интернета по публичному IP-адресу:trueилиfalse. -
replicationSource— источник репликации для хоста для ручного управления потоками репликации. В параметре укажите FQDN хоста, который будет источником репликации. -
priority— приоритет хоста среди всех хостов. -
configSpec.postgresqlConfig_<версия_PostgreSQL>— набор настроек PostgreSQL. Укажите каждую настройку на отдельной строке через запятую.Список версий PostgreSQL, доступных для параметра, см. в описании метода. Описание и возможные значения настроек см. в разделе Настройки PostgreSQL.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.UpdateHosts и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask(в виде массива строкpaths[]).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_host_specs": [ { "update_mask": { "paths": [ "assign_public_ip", "replication_source", "priority", "config_spec.postgresql_config_16" ] }, "host_name": "<FQDN_хоста>", "assign_public_ip": <разрешить_публичный_доступ_к_хосту>, "replication_source": "<FQDN_хоста>", "priority": "<приоритет_хоста>", "config_spec": { "postgresql_config_<версия_PostgreSQL>": { <настройки_PostgreSQL> } } } ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.UpdateHostsГде
update_host_specs— массив изменяемых хостов. Один элемент массива содержит настройки для одного хоста и имеет следующую структуру:-
update_mask— перечень изменяемых параметров в виде массива строкpaths[]. -
host_name— FQDN изменяемого хоста. -
assign_public_ip— доступность хоста из интернета по публичному IP-адресу:trueилиfalse. -
replication_source— источник репликации для хоста для ручного управления потоками репликации. В параметре укажите FQDN хоста, который будет источником репликации. -
priority— приоритет хоста среди всех хостов. -
config_spec.postgresql_config_<версия_PostgreSQL>— набор настроек PostgreSQL. Укажите каждую настройку на отдельной строке через запятую.Список версий PostgreSQL, доступных для параметра, см. в описании метода. Описание и возможные значения настроек см. в разделе Настройки PostgreSQL.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Если после изменения хоста к нему невозможно подключиться, убедитесь, что группа безопасности кластера настроена корректно для подсети, в которую помещен хост.
Удалить хост
Вы можете удалить хост из кластера PostgreSQL, если он не является единственным хостом. Чтобы заменить единственный хост, сначала создайте новый хост, а затем удалите старый.
Если хост является мастером в момент удаления, Managed Service for PostgreSQL автоматически назначит мастером следующую по приоритету реплику.
Чтобы удалить хост из кластера:
- Перейдите в сервис Managed Service for PostgreSQL.
- Нажмите на имя нужного кластера и выберите вкладку Хосты.
- Нажмите значок
в строке нужного хоста, выберите пункт Удалить и подтвердите удаление.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы удалить хост из кластера, выполните команду:
yc managed-postgresql host delete <имя_хоста> \
--cluster-name <имя_кластера>
Имя хоста можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.
Чтобы удалить хост из кластера:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.
-
Удалите из описания кластера Managed Service for PostgreSQL блок
host, соответствующий удаляемому хосту. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Введите слово
yesи нажмите Enter.-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:
- создание, в том числе путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts, например:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } } -
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.DeleteHosts и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/hosts:batchDelete' \ --data '{ "hostNames": [ "<FQDN_хоста>" ] }'Где
hostNames— массив строк, каждая из которых содержит FQDN удаляемого хоста.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.DeleteHosts и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "host_names": [ "<FQDN_хоста>" ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.DeleteHostsГде
host_names— массив строк, каждая из которых содержит FQDN удаляемого хоста.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.