Управление хостами кластера ClickHouse®
Вы можете выполнить следующие действия над хостами ClickHouse®:
- получить список хостов в кластере;
- создать хост;
- изменить настройки ClickHouse® для хоста;
- перезапустить хост;
- удалить хост.
О том, как перенести хосты ClickHouse® в другую зону доступности, читайте в инструкции.
Важно
Если вы создали кластер без поддержки ClickHouse® Keeper, то прежде чем добавлять новые хосты в любой из шардов, включите отказоустойчивость с использованием хостов ZooKeeper.
Получить список хостов в кластере
- Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список хостов в кластере, выполните команду:
yc managed-clickhouse host list \
--cluster-name=<имя_кластера>
+----------------------------+--------------+---------+--------+---------------+
| NAME | CLUSTER ID | ROLE | HEALTH | ZONE ID |
+----------------------------+--------------+---------+--------+---------------+
| rc1b...mdb.yandexcloud.net | c9qp71dk1... | MASTER | ALIVE | ru-central1-b |
| rc1a...mdb.yandexcloud.net | c9qp71dk1... | 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-clickhouse/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/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.ListHosts
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать хост
Количество хостов в кластерах Managed Service for ClickHouse® ограничено квотами на количество CPU и объем памяти, которые доступны кластерам БД в вашем облаке. Чтобы проверить используемые ресурсы, откройте страницу Квоты
С помощью CLI, Terraform и API можно создать сразу несколько хостов в кластере.
-
Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. -
Нажмите на имя нужного кластера и перейдите на вкладку Хосты.
-
Нажмите кнопку Создать хост.
-
Укажите параметры хоста:
- Зону доступности.
- Подсеть (если нужной подсети в списке нет, создайте ее).
- Выберите опцию Публичный доступ, если хост должен быть доступен извне Yandex Cloud.
- Имя шарда.
- Выберите опцию Копировать схему данных, чтобы скопировать схему со случайной реплики на новый хост.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать один или несколько хостов:
-
Запросите список подсетей кластера, чтобы выбрать подсеть для нового хоста:
yc vpc subnet list
Результат:
+-----------+-----------+------------+---------------+------------------+ | ID | NAME | NETWORK ID | ZONE | RANGE | +-----------+-----------+------------+---------------+------------------+ | b0cl69... | default-d | enp6rq7... | ru-central1-d | [172.16.0.0/20] | | e2lkj9... | default-b | enp6rq7... | ru-central1-b | [10.10.0.0/16] | | e9b0ph... | a-2 | enp6rq7... | ru-central1-a | [172.16.32.0/20] | | e9b9v2... | default-a | enp6rq7... | ru-central1-a | [172.16.16.0/20] | +-----------+-----------+------------+---------------+------------------+
Если нужной подсети в списке нет, создайте ее.
-
Посмотрите описание команды CLI для создания хостов:
yc managed-clickhouse hosts add --help
-
Выполните команду создания хостов.
Укажите в команде один или несколько параметров
--host
: по одному параметру на каждый хост, который нужно создать.Команда для создания одного хоста имеет вид:
yc managed-clickhouse hosts add \ --cluster-name=<имя_кластера> \ --host zone-id=<зона_доступности>,` `subnet-id=<идентификатор_подсети>,` `assign-public-ip=<публичный_доступ_к_хосту>,` `shard-name=<имя_шарда>,` `type=clickhouse
Где
assign-public-ip
— доступность хоста из интернета по публичному IP-адресу:true
илиfalse
.Чтобы скопировать схему данных со случайной реплики на новый хост, укажите необязательный параметр
--copy-schema
.Managed Service for ClickHouse® запустит операцию создания хостов.
Идентификатор подсети необходимо указать, если в зоне доступности больше одной подсети, в противном случае Managed Service for ClickHouse® автоматически выберет единственную подсеть. Имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Добавьте к описанию кластера Managed Service for ClickHouse® один или несколько блоков
host
: по одному блоку на каждый хост, который нужно создать.Единичный блок
host
имеет вид:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... host { type = "CLICKHOUSE" zone = "<зона_доступности>" subnet_id = "<идентификатор_подсети>" assign_public_ip = <публичный_доступ_к_хосту> } }
Где
assign_public_ip
— доступность хоста из интернета по публичному IP-адресу:true
илиfalse
. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:
- создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
- изменение — 90 минут;
- удаление — 30 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_clickhouse_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-clickhouse/v1/clusters/<идентификатор_кластера>/hosts:batchCreate' \ --data '{ "hostSpecs": [ { "type": "CLICKHOUSE", "zoneId": "<зона_доступности>", "subnetId": "<идентификатор_подсети>", "shardName": "<имя_шарда>", "assignPublicIp": <публичный_доступ_к_хосту> }, { <аналогичный_набор_настроек_для_создаваемого_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_создаваемого_хоста_N> } ], "copySchema": <копирование_схемы_данных> }'
Где:
-
hostSpecs
— массив, содержащий настройки создаваемых хостов. Один элемент массива содержит настройки для одного хоста и имеет следующую структуру:type
— тип хоста, всегдаCLICKHOUSE
для хостов ClickHouse®.zoneId
— зона доступности.subnetId
— идентификатор подсети.shardName
— имя шарда.assignPublicIp
— доступность хоста из интернета по публичному IP-адресу:true
илиfalse
.
-
copySchema
— параметр, который определяет, копировать ли схему данных со случайной реплики на создаваемые хосты:true
илиfalse
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "host_specs": [ { "type": "CLICKHOUSE", "zone_id": "<зона_доступности>", "subnet_id": "<идентификатор_подсети>", "shard_name": "<имя_шарда>", "assign_public_ip": <публичный_доступ_к_хосту> }, { <аналогичный_набор_настроек_для_создаваемого_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_создаваемого_хоста_N> } ], "copy_schema": <копировать_ли_схему_данных> }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.AddHosts
Где:
-
host_specs
— массив, содержащий настройки создаваемых хостов. Один элемент массива содержит настройки для одного хоста и имеет следующую структуру:type
— тип хоста, всегдаCLICKHOUSE
для хостов ClickHouse®.zone_id
— зона доступности.subnet_id
— идентификатор подсети.shard_name
— имя шарда.assign_public_ip
— доступность хоста из интернета по публичному IP-адресу:true
илиfalse
.
-
copy_schema
— параметр, который определяет, копировать ли схему данных со случайной реплики на создаваемые хосты:true
илиfalse
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Если после создания хоста к нему невозможно подключиться, убедитесь, что группа безопасности кластера настроена корректно для подсети, в которую помещен хост.
Используйте опцию копирования схемы данных только в том случае, когда схема одинакова на всех хостах-репликах кластера.
Изменить хост
Для каждого хоста в кластере Managed Service for ClickHouse® можно изменить настройки публичного доступа.
Чтобы изменить параметры хоста в кластере:
- Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Хосты.
- Нажмите на значок
в строке нужного хоста и выберите пункт Редактировать. - Включите опцию Публичный доступ, если хост должен быть доступен извне Yandex Cloud.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить параметры хоста, выполните команду:
yc managed-clickhouse host update <имя_хоста> \
--cluster-name=<имя_кластера> \
--assign-public-ip=<публичный_доступ_к_хосту>
Где assign-public-ip
— доступность хоста из интернета по публичному IP-адресу: true
или false
.
Имя хоста можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
В блоке
host
нужного хоста добавьте параметрassign_public_ip
или измените его значение.resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... host { ... assign_public_ip = <публичный_доступ_к_хосту> } ... }
Где
assign_public_ip
— доступность хоста из интернета по публичному IP-адресу:true
илиfalse
. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
-
Получите 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-clickhouse/v1/clusters/<идентификатор_кластера>/hosts:batchUpdate' \ --data '{ "updateHostSpecs": [ { "hostName": "<имя_хоста>", "updateMask": "assignPublicIp", "assignPublicIp": <публичный_доступ_к_хосту> } ] }'
Где
updateHostSpecs[]
— перечень хостов, которые надо изменить, и их параметров. Структура отдельного элемента:-
hostName
— имя хоста, которое можно запросить со списком хостов в кластере. -
updateMask
— перечень изменяемых параметров в одну строку через запятую.В данном случае указан только один параметр:
assignPublicIp
. -
assignPublicIp
— доступность хоста из интернета по публичному IP-адресу:true
илиfalse
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_host_specs": [ { "host_name": "<имя_хоста>", "update_mask": { "paths": [ "assign_public_ip" ] }, "assign_public_ip": <публичный_доступ_к_хосту> }] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.UpdateHosts
Где
update_host_specs[]
— перечень хостов, которые надо изменить, и их параметров. Структура отдельного элемента:-
host_name
— имя хоста, которое можно запросить со списком хостов в кластере. -
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае указан только один параметр:
assign_public_ip
. -
assign_public_ip
— доступность хоста из интернета по публичному IP-адресу:true
илиfalse
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Если после изменения хоста к нему невозможно подключиться, убедитесь, что группа безопасности кластера настроена корректно для подсети, в которую помещен хост.
Перезапустить хост
Перезапуск хостов может понадобиться, если нужно экстренно устранить такие проблемы, как:
- перерасход ресурсов;
- утечка памяти;
- взаимоблокировка (deadlock) между запросами;
- зависание операций и внутренних процессов ClickHouse®.
Чтобы перезапустить хост:
- Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и перейдите на вкладку Хосты.
- В строке нужного хоста нажмите на значок
и выберите пункт Перезагрузить. - Подтвердите перезагрузку хоста.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы перезапустить хост, выполните команду:
yc managed-clickhouse host restart <имя_хоста> \
--cluster-name=<имя_кластера>
Имя хоста можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.restartHosts и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>/hosts:restartHosts' \ --data '{ "hostNames": [ <перечень_имен_хостов> ] }'
Где
hostNames
— массив строк. Каждая строка — имя хоста, который нужно перезапустить. Имена хостов можно запросить со списком хостов в кластере.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/RestartHosts и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "host_names": [ <перечень_имен_хостов> ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.RestartHosts
Где
host_names
— массив строк. Каждая строка — имя хоста, который нужно перезапустить. Имена хостов можно запросить со списком хостов в кластере.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Удалить хост
С помощью CLI, Terraform и API можно удалить сразу несколько хостов из кластера.
Важно
Нельзя удалить хост из кластера или шарда, если достигнут соответствующий лимит на минимальное количество хостов.
Нельзя удалить хосты, на которых размещается ClickHouse® Keeper, если при создании кластера была включена поддержка этого механизма репликации.
- Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Хосты.
- Нажмите на значок
в строке нужного хоста и выберите пункт Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы удалить один или несколько хостов из кластера, выполните команду, передав нужные имена хостов. Используйте пробел в качестве разделителя.
Команда для удаления одного хоста имеет вид:
yc managed-clickhouse hosts delete --cluster-name=<имя_кластера> \
<имя_хоста>
Имена хостов можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Удалите из описания кластера Managed Service for ClickHouse® один или несколько блоков
host
с типомCLICKHOUSE
. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Введите слово
yes
и нажмите Enter.-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:
- создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
- изменение — 90 минут;
- удаление — 30 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_clickhouse_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-clickhouse/v1/clusters/<идентификатор_кластера>/hosts:batchDelete' \ --data '{ "hostNames": [ <перечень_имен_хостов> ] }'
Где
hostNames
— массив строк. Каждая строка — имя хоста, который нужно удалить. Имена хостов можно запросить со списком хостов в кластере.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "host_names": [ <перечень_имен_хостов> ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.DeleteHosts
Где
host_names
— массив строк. Каждая строка — имя хоста, который нужно удалить. Имена хостов можно запросить со списком хостов в кластере.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc