Управление группами хостов OpenSearch
В кластере Managed Service for OpenSearch вы можете управлять группами хостов:
- Получить список групп хостов в кластере.
- Создать группу хостов.
- Изменить конфигурацию группы хостов, в том числе добавить в нее новые хосты или удалить их.
- Удалить группу хостов.
Также вы можете получить список хостов в кластере.
О миграции групп хостов в кластере Managed Service for OpenSearch в другую зону доступности читайте в инструкции.
Получить список групп хостов в кластере
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for OpenSearch. - Нажмите на имя нужного кластера, затем выберите вкладку
Группы хостов.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список групп хостов в кластере, запросите информацию о кластере OpenSearch:
yc managed-opensearch cluster get <имя_или_идентификатор_кластера>
Список групп хостов указан в параметрах config.opensearch.node_groups
и config.dashboards.node_groups
.
Имя и идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.Get и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-opensearch/v1/clusters/<идентификатор_кластера>'
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Доступные группы хостов указаны в параметрах
nodeGroups
.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService.Get и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.Get
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Доступные группы хостов указаны в параметрах
nodeGroups
.
Создать группу хостов
При создании групп хостов действуют ограничения:
- В кластере Managed Service for OpenSearch может быть только одна группа хостов
Dashboards
. - Если вы добавляете группу хостов
OpenSearch
и назначаете хостам рольMANAGER
, минимальное количество хостов с такой ролью — три.
Чтобы создать группу хостов:
-
В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for OpenSearch. -
Нажмите на имя нужного кластера, затем выберите вкладку
Группы хостов. -
Нажмите кнопку Создать группу хостов.
-
Укажите параметры группы:
-
Тип группы:
OpenSearch
илиDashboards
. -
Имя. Оно должно быть уникальным в кластере.
-
Для группы хостов
OpenSearch
выберите роль хостов. -
Платформу, тип и класс хостов.
Класс хостов определяет технические характеристики виртуальных машин, на которых будут развернуты ноды OpenSearch. Все доступные варианты перечислены в разделе Классы хостов.
-
Тип диска и объем хранилища, который будет использоваться для данных.
От выбранного типа зависит, с каким шагом можно будет изменить размер диска:
- Сетевые HDD- и SSD-диски — с шагом 1 ГБ.
- Локальные SSD-диски:
- для платформы Intel Cascade Lake — с шагом 100 ГБ;
- для платформы Intel Ice Lake — с шагом 368 ГБ.
- Нереплицируемые SSD-диски — с шагом 93 ГБ.
-
(Опционально) В блоке Автоматическое увеличение размера хранилища настройте автоматическое увеличение размера диска:
-
В поле Увеличивать размер задайте соответствующие условия, чтобы:
- Размер хранилища увеличился в следующее окно обслуживания, когда хранилище окажется заполнено более чем на указанную долю (%).
- Размер хранилища увеличился незамедлительно, когда хранилище окажется заполнено более чем на указанную долю (%).
Можно задать оба условия, но порог для незамедлительного увеличения должен быть выше порога для увеличения в окно обслуживания.
-
В поле Максимальный размер хранилища укажите максимальный размер хранилища, который может быть установлен при автоматическом увеличении размера хранилища.
Если заданный порог достигнут, размер хранилища увеличивается по-разному в зависимости от типа диска:
-
Для сетевых HDD- и SSD-дисков — на большее из двух значений: 20 ГБ или 20% от текущего размера диска.
-
Для нереплицируемых SSD-дисков — на 93 ГБ.
-
Для локальных SSD-дисков:
- В кластере на платформе Intel Cascade Lake — на 100 ГБ.
- В кластере на платформе Intel Ice Lake — на 368 ГБ.
Если порог срабатывания достигнут повторно, размер хранилища будет автоматически увеличиваться, пока не достигнет заданного максимума. После этого вы можете задать новый максимальный размер хранилища вручную.
Важно
- Размер хранилища нельзя уменьшить.
- Во время изменения размера хранилища хосты кластера будут недоступны.
-
Если настроено увеличение хранилища в окно обслуживания, настройте расписание окна обслуживания.
-
-
Расположение хостов по зонам доступности и подсетям.
-
Количество создаваемых хостов.
-
Включите опцию Публичный доступ, если вы хотите, чтобы к хостам можно было подключаться через интернет.
-
-
Нажмите кнопку Создать группу хостов.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать группу хостов, выполните команду:
yc managed-opensearch node-group add --cluster-name <имя_кластера> \
--opensearch-node-group name=<имя_группы_хостов_OpenSearch>,`
`resource-preset-id=<класс_хостов>,`
`disk-size=<размер_диска_в_байтах>,`
`disk-type-id=<тип_диска>,`
`hosts-count=<количество_хостов_в_группе>,`
`zone-ids=<зоны_доступности>,`
`subnet-names=<имена_подсетей>,`
`assign-public-ip=<назначить_публичный_адрес:_true_или_false>,`
`roles=<роли_хостов> \
--dashboards-node-group name=<имя_группы_хостов_Dashboards>,`
`resource-preset-id=<класс_хостов>,`
`disk-size=<размер_диска_в_байтах>,`
`disk-type-id=<тип_диска>,`
`hosts-count=<количество_хостов_в_группе>,`
`zone-ids=<зоны_доступности>,`
`subnet-names=<имена_подсетей>,`
`assign-public-ip=<назначить_публичный_адрес:_true_или_false>
В команде укажите нужные параметры в зависимости от того, какую группу хостов вы хотите создать:
-
--opensearch-node-group
— конфигурация группы хостовOpenSearch
, где:-
resource-preset-id
— класс хостов. Он определяет технические характеристики виртуальных машин, на которых будут развернуты узлы OpenSearch. Все доступные варианты перечислены в разделе Классы хостов. -
disk-size
— размер диска в байтах. Минимальное и максимальное значения зависят от выбранного класса хостов. -
disk-type-id
— тип диска. -
roles
— роли хостов. Возможные значения:data
— предоставляется только рольDATA
;manager
— предоставляется только рольMANAGER
;data+manager
илиmanager+data
— предоставляются обе роли.
Совет
Не рекомендуется включать публичный доступ для хостов с ролью
MANAGER
— это небезопасно.
-
-
--dashboards-node-group
— конфигурация группы хостовDashboards
. Настраивается так же, как группа хостовOpenSearch
, за исключением ролей хостов. Для группыDashboards
роли настраивать не нужно.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for OpenSearch см. в документации провайдера Terraform
. -
Чтобы создать группу хостов
OpenSearch
, добавьте блокnode_groups
в блокopensearch
:resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" { ... config { opensearch { ... node_groups { name = "<имя_группы_виртуальных_хостов>" assign_public_ip = <публичный_доступ> hosts_count = <количество_хостов> zone_ids = ["<список_зон_доступности>"] subnet_ids = ["<список_идентификаторов подсетей>"] roles = ["<список_ролей>"] resources { resource_preset_id = "<класс_хоста>" disk_size = <размер_хранилища_в_байтах> disk_type_id = "<тип_диска>" } } } ... } }
Где:
assign_public_ip
— публичный доступ к хосту:true
илиfalse
.roles
— роли хостов:DATA
иMANAGER
.
-
Чтобы создать группу хостов
Dashboards
, добавьте блокdashboards
в блокconfig
:resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" { ... config { ... dashboards { node_groups { name = "<имя_группы_виртуальных_хостов>" assign_public_ip = <публичный_доступ> hosts_count = <количество_хостов> zone_ids = ["<список_зон_доступности>"] subnet_ids = ["<список_идентификаторов подсетей>"] resources { resource_preset_id = "<класс_хоста>" disk_size = <размер_хранилища_в_байтах> disk_type_id = "<тип_диска>" } } } } }
Где
assign_public_ip
— публичный доступ к хосту:true
илиfalse
.В кластере может быть только одна группа хостов
Dashboards
. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for OpenSearch:
- создание, в том числе путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } }
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Создайте файл
body.json
и добавьте в него следующее содержимое:{ "nodeGroupSpec": { "name": "<название_группы_хостов>", "resources": { "resourcePresetId": "<класс_хостов>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" }, "roles": ["<роль_1>","<роль_2>"], "hostsCount": "<число_хостов>", "zoneIds": [ "<зона_доступности_1>", "<зона_доступности_2>", "<зона_доступности_3>" ], "subnetIds": [ "<идентификатор_подсети_1>", "<идентификатор_подсети_2>", "<идентификатор_подсети_3>" ], "assignPublicIp": <публичный_адрес_хоста:_true_или_false>, "diskSizeAutoscaling": { "plannedUsageThreshold": "<процент_для_планового_увеличения>", "emergencyUsageThreshold": "<процент_для_незамедлительного_увеличения>", "diskSizeLimit": "<максимальный_размер_хранилища_в_байтах>" } } }
Где
nodeGroups
— настройки хостов:-
name
— имя группы хостов. -
resources
— ресурсы кластера:resourcePresetId
— класс хостов;diskSize
— размер диска в байтах;diskTypeId
— тип диска.
-
roles
(только для хостовOpenSearch
) — список ролей хостов:DATA
илиMANAGER
. На одну группу можно назначить одну или обе роли. -
hostsCount
— количество хостов в группе. Миниальное число хостовDATA
иDashboards
— один, хостовMANAGER
— три. -
zoneIds
— список зон доступности, где размещаются хосты кластера. -
subnetIds
— список идентификаторов подсетей. -
assignPublicIp
— разрешение на подключение к хосту из интернета. -
diskSizeAutoscaling
— настройки автоматического увеличения размера хранилища:-
plannedUsageThreshold
— процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания.Значение задается в процентах от
0
до100
. По умолчанию —0
(автоматическое расширение отключено).Если вы задали этот параметр, настройте расписание окна технического обслуживания перед созданием группы хостов.
-
emergencyUsageThreshold
— процент заполнения хранилища, при котором хранилище будет увеличено немедленно.Значение задается в процентах от
0
до100
. По умолчанию —0
(автоматическое расширение отключено). Должно быть не меньше значенияplannedUsageThreshold
. -
diskSizeLimit
— максимальный размер хранилища (в байтах), который может быть установлен при достижении одного из заданных процентов заполнения.
-
-
-
Чтобы создать группу хостов
OpenSearch
:-
Воспользуйтесь методом Cluster.AddOpenSearchNodeGroup и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-opensearch/v1/clusters/<идентификатор_кластера>/opensearch/node_groups' \ --data "@body.json"
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы создать группу хостов
Dashboards
:-
Воспользуйтесь методом Cluster.AddDashboardsNodeGroup и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-opensearch/v1/clusters/<идентификатор_кластера>/dashboards/node_groups' \ --data "@body.json"
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Создайте файл
body.json
и добавьте в него следующее содержимое:{ "node_group_spec": { "name": "<название_группы_хостов>", "resources": { "resource_preset_id": "<класс_хостов>", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" }, "roles": ["<роль_1>","<роль_2>"], "hosts_count": "<число_хостов>", "zone_ids": [ "<зона_доступности_1>", "<зона_доступности_2>", "<зона_доступности_3>" ], "subnet_ids": [ "<идентификатор_подсети_1>", "<идентификатор_подсети_2>", "<идентификатор_подсети_3>" ], "assign_public_ip": <публичный_адрес_хоста:_true_или_false>, "disk_size_autoscaling": { "planned_usage_threshold": "<процент_для_планового_увеличения>", "emergency_usage_threshold": "<процент_для_незамедлительного_увеличения>", "disk_size_limit": "<максимальный_размер_хранилища_в_байтах>" } } }
Где
node_groups
— настройки хостов:-
name
— имя группы хостов. -
resources
— ресурсы кластера:resource_preset_id
— класс хостов;disk_size
— размер диска в байтах;disk_type_id
— тип диска.
-
roles
(только для хостовOpenSearch
) — список ролей хостов:DATA
илиMANAGER
. На одну группу можно назначить одну или обе роли. -
hosts_count
— количество хостов в группе. Миниальное число хостовDATA
иDashboards
— один, хостовMANAGER
— три. -
zone_ids
— список зон доступности, где размещаются хосты кластера. -
subnet_ids
— список идентификаторов подсетей. -
assign_public_ip
— разрешение на подключение к хосту из интернета. -
disk_size_autoscaling
— настройки автоматического увеличения размера хранилища:-
planned_usage_threshold
— процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания.Значение задается в процентах от
0
до100
. По умолчанию —0
(автоматическое расширение отключено).Если вы задали этот параметр, настройте расписание окна технического обслуживания перед созданием группы хостов.
-
emergency_usage_threshold
— процент заполнения хранилища, при котором хранилище будет увеличено немедленно.Значение задается в процентах от
0
до100
. По умолчанию —0
(автоматическое расширение отключено). Должно быть не меньше значенияplanned_usage_threshold
. -
disk_size_limit
— максимальный размер хранилища (в байтах), который может быть установлен при достижении одного из заданных процентов заполнения.
-
-
-
Чтобы создать группу хостов
OpenSearch
:-
Воспользуйтесь вызовом ClusterService.AddOpenSearchNodeGroup и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.AddOpenSearchNodeGroup \ < body.json
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы создать группу хостов
Dashboards
:-
Воспользуйтесь вызовом ClusterService.AddDashboardsNodeGroup и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.AddDashboardsNodeGroup \ < body.json
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Изменить конфигурацию группы хостов
-
В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for OpenSearch. -
Нажмите на имя нужного кластера, затем выберите вкладку
Группы хостов. -
Нажмите на значок
в строке нужной группы и выберите пункт Изменить. -
Измените настройки группы хостов:
-
Роль хостов (только для группы хостов
OpenSearch
). -
Платформу, тип и класс хостов.
Класс хостов определяет технические характеристики виртуальных машин, на которых будут развернуты ноды OpenSearch. Все доступные варианты перечислены в разделе Классы хостов.
-
Размер диска.
Шаг, с которым можно изменить размер диска, зависит от типа диска:
-
Сетевые HDD- и SSD-диски — с шагом 1 ГБ.
-
Локальные SSD-диски:
- для платформы Intel Cascade Lake — с шагом 100 ГБ;
- для платформы Intel Ice Lake — с шагом 368 ГБ.
-
Нереплицируемые SSD-диски — с шагом 93 ГБ.
-
-
(Опционально) В блоке Автоматическое увеличение размера хранилища настройте автоматическое увеличение размера диска:
-
В поле Увеличивать размер задайте соответствующие условия, чтобы:
- Размер хранилища увеличился в следующее окно обслуживания, когда хранилище окажется заполнено более чем на указанную долю (%).
- Размер хранилища увеличился незамедлительно, когда хранилище окажется заполнено более чем на указанную долю (%).
Можно задать оба условия, но порог для незамедлительного увеличения должен быть выше порога для увеличения в окно обслуживания.
-
В поле Максимальный размер хранилища укажите максимальный размер хранилища, который может быть установлен при автоматическом увеличении размера хранилища.
Если заданный порог достигнут, размер хранилища увеличивается по-разному в зависимости от типа диска:
-
Для сетевых HDD- и SSD-дисков — на большее из двух значений: 20 ГБ или 20% от текущего размера диска.
-
Для нереплицируемых SSD-дисков — на 93 ГБ.
-
Для локальных SSD-дисков:
- В кластере на платформе Intel Cascade Lake — на 100 ГБ.
- В кластере на платформе Intel Ice Lake — на 368 ГБ.
Если порог срабатывания достигнут повторно, размер хранилища будет автоматически увеличиваться, пока не достигнет заданного максимума. После этого вы можете задать новый максимальный размер хранилища вручную.
Важно
- Размер хранилища нельзя уменьшить.
- Во время изменения размера хранилища хосты кластера будут недоступны.
-
Если настроено увеличение хранилища в окно обслуживания, настройте расписание окна обслуживания.
-
-
Расположение хостов по зонам доступности и подсетям.
-
Количество хостов.
-
Публичный доступ к хостам.
-
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить конфигурацию группы хостов, выполните команду:
yc managed-opensearch node-group update --cluster-name <имя_кластера> \
--node-group-name <имя_группы_хостов> \
--resource-preset-id <класс_хостов> \
--disk-size <размер_диска_в_байтах> \
--hosts-count <количество_хостов_в_группе> \
--roles <роли_хостов>
В команде укажите нужные параметры в зависимости от того, какая конфигурация группы хостов нужна:
-
--node-group-name
— имя группы хостов, которую нужно изменить. -
--resource-preset-id
— новый класс хостов. Он определяет технические характеристики виртуальных машин, на которых будут развернуты узлы OpenSearch. Все доступные варианты перечислены в разделе Классы хостов. -
--disk-size
— новый размер диска в байтах. Минимальное и максимальное значения зависят от выбранного класса хостов. -
--hosts-count
— новое количество хостов в группе. -
--roles
— новые роли хостов. Возможные значения:data
— предоставляется только рольDATA
;manager
— предоставляется только рольMANAGER
;data+manager
илиmanager+data
— предоставляются обе роли.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for OpenSearch см. в документации провайдера Terraform
. -
Чтобы изменить конфигурацию группы хостов
OpenSearch
, измените параметры нужного блокаnode_groups
в блокеopensearch
:resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" { ... opensearch { ... node_groups { name = "<имя_группы_виртуальных_хостов>" assign_public_ip = <публичный_доступ> hosts_count = <количество_хостов> roles = ["<список_ролей>"] resources { resource_preset_id = "<класс_хоста>" disk_size = <размер_хранилища_в_байтах> disk_type_id = "<тип_диска>" } } ... } }
Где:
assign_public_ip
— публичный доступ к хосту:true
илиfalse
.roles
— роли хостов:DATA
иMANAGER
.
-
Чтобы изменить конфигурацию группы хостов
Dashboards
, измените параметры блокаdashboards
:resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" { ... dashboards { node_groups { name = "<имя_группы_виртуальных_хостов>" assign_public_ip = <публичный_доступ> hosts_count = <количество_хостов> resources { resource_preset_id = "<класс_хоста>" disk_size = <размер_хранилища_в_байтах> disk_type_id = "<тип_диска>" } } } }
Где
assign_public_ip
— публичный доступ к хосту:true
илиfalse
. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for Elasticsearch:
- создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_elasticsearch_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } }
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Создайте файл
body.json
и добавьте в него следующее содержимое:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).{ "updateMask": "resources,hostsCount,zoneIds,subnetIds,assignPublicIp,diskSizeAutoscaling", "nodeGroupSpec": { "resources": { "resourcePresetId": "<класс_хостов>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" }, "hostsCount": "<число_хостов>", "zoneIds": [ "<зона_доступности_1>", "<зона_доступности_2>", "<зона_доступности_3>" ], "subnetIds": [ "<идентификатор_подсети_1>", "<идентификатор_подсети_2>", "<идентификатор_подсети_3>" ], "assignPublicIp": <публичный_адрес_хоста:_true_или_false>, "diskSizeAutoscaling": { "plannedUsageThreshold": "<процент_для_планового_увеличения>", "emergencyUsageThreshold": "<процент_для_незамедлительного_увеличения>", "diskSizeLimit": "<максимальный_размер_хранилища_в_байтах>" } } }
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
nodeGroups
— настройки хостов:-
resources
— ресурсы кластера:resourcePresetId
— класс хостов;diskSize
— размер диска в байтах;diskTypeId
— тип диска.
-
hostsCount
— количество хостов в группе. Миниальное число хостовDATA
иDashboards
— один, хостовMANAGER
— три. -
zoneIds
— список зон доступности, где размещаются хосты кластера. -
subnetIds
— список идентификаторов подсетей. -
assignPublicIp
— разрешение на подключение к хосту из интернета. -
diskSizeAutoscaling
— настройки автоматического увеличения размера хранилища:-
plannedUsageThreshold
— процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания.Значение задается в процентах от
0
до100
. По умолчанию —0
(автоматическое расширение отключено).Если вы задали этот параметр, настройте расписание окна технического обслуживания перед созданием группы хостов.
-
emergencyUsageThreshold
— процент заполнения хранилища, при котором хранилище будет увеличено немедленно.Значение задается в процентах от
0
до100
. По умолчанию —0
(автоматическое расширение отключено). Должно быть не меньше значенияplannedUsageThreshold
. -
diskSizeLimit
— максимальный размер хранилища (в байтах), который может быть установлен при достижении одного из заданных процентов заполнения.
-
-
-
-
Чтобы изменить конфигурацию группы хостов
OpenSearch
:-
Воспользуйтесь методом Cluster.UpdateOpenSearchNodeGroup и выполните запрос, например, с помощью cURL
:curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-opensearch/v1/clusters/<идентификатор_кластера>/opensearch/node_groups/<название_группы_хостов>' \ --data "@body.json"
Идентификатор кластера можно запросить со списком кластеров в каталоге. Название группы хостов можно запросить с детальной информацией о кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы изменить конфигурацию группы хостов
Dashboards
:-
Воспользуйтесь методом Cluster.UpdateDashboardsNodeGroup и выполните запрос, например, с помощью cURL
:curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-opensearch/v1/clusters/<идентификатор_кластера>/dashboards/node_groups/<название_группы_хостов>' \ --data "@body.json"
Идентификатор кластера можно запросить со списком кластеров в каталоге. Название группы хостов можно запросить с детальной информацией о кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Создайте файл
body.json
и добавьте в него следующее содержимое:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
{ "cluster_id": "<идентификатор_кластера>", "name": "<название_группы_хостов>", "update_mask": { "paths": [ "resources", "hosts_count", "zone_ids", "subnet_ids", "assign_public_ip" ] }, "node_group_spec": { "resources": { "resource_preset_id": "<класс_хостов>", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" }, "hosts_count": "<число_хостов>", "zone_ids": [ "<зона_доступности_1>", "<зона_доступности_2>", "<зона_доступности_3>" ], "subnet_ids": [ "<идентификатор_подсети_1>", "<идентификатор_подсети_2>", "<идентификатор_подсети_3>" ], "assign_public_ip": <публичный_адрес_хоста:_true_или_false>, "disk_size_autoscaling": { "planned_usage_threshold": "<процент_для_планового_увеличения>", "emergency_usage_threshold": "<процент_для_незамедлительного_увеличения>", "disk_size_limit": "<максимальный_размер_хранилища_в_байтах>" } } }
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
. -
node_groups
— настройки хостов:-
resources
— ресурсы кластера:resource_preset_id
— класс хостов;disk_size
— размер диска в байтах;disk_type_id
— тип диска.
-
hosts_count
— количество хостов в группе. Миниальное число хостовDATA
иDashboards
— один, хостовMANAGER
— три. -
zone_ids
— список зон доступности, где размещаются хосты кластера. -
subnet_ids
— список идентификаторов подсетей. -
assign_public_ip
— разрешение на подключение к хосту из интернета. -
disk_size_autoscaling
— настройки автоматического увеличения размера хранилища:-
planned_usage_threshold
— процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания.Значение задается в процентах от
0
до100
. По умолчанию —0
(автоматическое расширение отключено).Если вы задали этот параметр, настройте расписание окна технического обслуживания перед созданием группы хостов.
-
emergency_usage_threshold
— процент заполнения хранилища, при котором хранилище будет увеличено немедленно.Значение задается в процентах от
0
до100
. По умолчанию —0
(автоматическое расширение отключено). Должно быть не меньше значенияplanned_usage_threshold
. -
disk_size_limit
— максимальный размер хранилища (в байтах), который может быть установлен при достижении одного из заданных процентов заполнения.
-
-
-
-
Чтобы изменить конфигурацию группы хостов
OpenSearch
:-
Воспользуйтесь вызовом ClusterService.UpdateOpenSearchNodeGroup и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.UpdateOpenSearchNodeGroup \ < body.json
Идентификатор кластера можно запросить со списком кластеров в каталоге. Название группы хостов можно запросить с детальной информацией о кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы изменить конфигурацию группы хостов
Dashboards
:-
Воспользуйтесь вызовом ClusterService.UpdateDashboardsNodeGroup и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.UpdateDashboardsNodeGroup \ < body.json
Идентификатор кластера можно запросить со списком кластеров в каталоге. Название группы хостов можно запросить с детальной информацией о кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Удалить группу хостов
При удалении группы хостов действует ограничение: нельзя удалить единственную группу хостов с ролью DATA
.
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for OpenSearch. - Нажмите на имя нужного кластера, затем выберите вкладку
Группы хостов. - Нажмите на значок
в строке нужной группы и выберите пункт Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы удалить группу хостов, выполните команду:
yc managed-opensearch node-group delete --cluster-name <имя_кластера> \
--node-group-name <имя_группы_хостов>
В команде укажите группу хостов, которую нужно удалить.
Чтобы удалить группу хостов из кластера:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for OpenSearch см. в документации провайдера Terraform
. -
Чтобы удалить группу хостов
OpenSearch
, удалите блокnode_groups
, который соответствует удаляемой группе хостов, из блокаopensearch
. -
Чтобы удалить группу хостов
Dashboards
, удалите блокdashboards
. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите удаление ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for Elasticsearch:
- создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_elasticsearch_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } }
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Чтобы удалить группу хостов
OpenSearch
:-
Воспользуйтесь методом Cluster.DeleteOpenSearchNodeGroup и выполните запрос, например, с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-opensearch/v1/clusters/<идентификатор_кластера>/opensearch/node_groups/<название_группы_хостов>'
Идентификатор кластера можно запросить со списком кластеров в каталоге. Название группы хостов можно запросить с детальной информацией о кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы удалить группу хостов
Dashboards
:-
Воспользуйтесь методом Cluster.DeleteDashboardsNodeGroup и выполните запрос, например, с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-opensearch/v1/clusters/<идентификатор_кластера>/dashboards/node_groups/<название_группы_хостов>'
Идентификатор кластера можно запросить со списком кластеров в каталоге. Название группы хостов можно запросить с детальной информацией о кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Чтобы удалить группу хостов
OpenSearch
:-
Воспользуйтесь вызовом ClusterService.DeleteOpenSearchNodeGroup и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "name": "<название_группы_хостов>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.DeleteOpenSearchNodeGroup
Идентификатор кластера можно запросить со списком кластеров в каталоге. Название группы хостов можно запросить с детальной информацией о кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы удалить группу хостов
Dashboards
:-
Воспользуйтесь вызовом ClusterService.DeleteDashboardsNodeGroup и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "name": "<название_группы_хостов>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.DeleteDashboardsNodeGroup
Идентификатор кластера можно запросить со списком кластеров в каталоге. Название группы хостов можно запросить с детальной информацией о кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получить список хостов в кластере
- Перейдите на страницу каталога
и выберите сервис Managed Service for OpenSearch. - Нажмите на имя нужного кластера, затем выберите вкладку
Хосты.
-
Получите 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-opensearch/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/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.ListHosts
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.