Управление группами хостов OpenSearch
Примечание
В регионе Казахстан доступны только платформы standard-v3 (Intel Ice Lake) и standard-v3-t4i (Intel Ice Lake with T4i). Другие типы платформ, кластеры GPU и выделенные хосты недоступны.
В кластере Managed Service for OpenSearch вы можете управлять группами хостов:
- Получить список групп хостов в кластере.
- Создать группу хостов.
- Изменить конфигурацию группы хостов, в том числе добавить в нее новые хосты или удалить их.
- Удалить группу хостов.
Также вы можете получить список хостов в кластере.
О миграции групп хостов в кластере Managed Service for OpenSearch в другую зону доступности читайте в инструкции.
Получить список групп хостов в кластере
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for OpenSearch. - Нажмите на имя нужного кластера, затем выберите вкладку
Группы хостов.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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.yandexcloud.kz/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.yandexcloud.kz: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 ГБ.
-
(Опционально) Настройте автоматическое увеличение размера диска:
-
В поле Увеличивать размер задайте соответствующие условия, чтобы:
-
Размер хранилища увеличился в следующее окно обслуживания, когда хранилище окажется заполнено более чем на указанную долю (%). Если вы задали этот параметр, настройте расписание окна обслуживания.
-
Размер хранилища увеличился незамедлительно, когда хранилище окажется заполнено более чем на указанную долю (%).
Важно
Если заданы оба условия, порог для незамедлительного увеличения должен быть выше, чем для планового.
-
-
В поле Максимальный размер хранилища укажите максимальный размер хранилища после увеличения.
Важно
- Размер хранилища нельзя уменьшить.
- Во время изменения размера хранилища хосты кластера будут недоступны.
-
-
Расположение хостов по зонам доступности и подсетям.
-
Количество создаваемых хостов.
-
Включите опцию Публичный доступ, если вы хотите, чтобы к хостам можно было подключаться через интернет.
-
-
Нажмите кнопку Создать группу хостов.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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=<разрешить_публичный_доступ_к_хостам>,`
`roles=<роли_хостов> \
--dashboards-node-group name=<имя_группы_хостов_Dashboards>,`
`resource-preset-id=<класс_хостов>,`
`disk-size=<размер_диска_в_байтах>,`
`disk-type-id=<тип_диска>,`
`hosts-count=<количество_хостов_в_группе>,`
`zone-ids=<зоны_доступности>,`
`subnet-names=<имена_подсетей>,`
`assign-public-ip=<разрешить_публичный_доступ_к_хостам>
В команде укажите нужные параметры в зависимости от того, какую группу хостов вы хотите создать:
-
--opensearch-node-group— конфигурация группы хостовOpenSearch, где:-
resource-preset-id— класс хостов. Он определяет технические характеристики виртуальных машин, на которых будут развернуты узлы OpenSearch. Все доступные варианты перечислены в разделе Классы хостов. -
disk-size— размер диска в байтах. Минимальное и максимальное значения зависят от выбранного класса хостов. -
disk-type-id— тип диска. -
zone-ids— зоны доступности. Несколько зон указываются через запятую и в квадратных скобках. Например:zone-ids=[ru-central1-a,ru-central1-b,ru-central1-d] -
subnet-names— имена подсетей в указанных зонах доступности. Несколько подсетей указываются через запятую и в квадратных скобках. Например:subnet-names=[default-ru-central1-a,default-ru-central1-b,default-ru-central1-d]Вместо параметра
subnet-namesможно указать параметрsubnet-idsс идентификаторами подсетей. Несколько идентификаторов указываются через запятую и в квадратных скобках. Например:subnet-ids=[e9bp8qmchqh2********,e2l963gkhobo********,fl8klaabecc3********] -
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": <разрешить_публичный_доступ_к_хостам>, "diskSizeAutoscaling": { "plannedUsageThreshold": "<процент_для_планового_увеличения>", "emergencyUsageThreshold": "<процент_для_незамедлительного_увеличения>", "diskSizeLimit": "<максимальный_размер_хранилища_в_байтах>" } } }Где
nodeGroups— настройки хостов:-
name— имя группы хостов. -
resources— ресурсы кластера:resourcePresetId— класс хостов;diskSize— размер диска в байтах;diskTypeId— тип диска.
-
roles(только для хостовOpenSearch) — список ролей хостов:DATAилиMANAGER. На одну группу можно назначить одну или обе роли. -
hostsCount— количество хостов в группе. Миниальное число хостовDATAиDashboards— один, хостовMANAGER— три. -
zoneIds— список зон доступности, где размещаются хосты кластера. -
subnetIds— список идентификаторов подсетей. -
assignPublicIp— разрешение на подключение к хосту из интернета:trueилиfalse. -
diskSizeAutoscaling— настройки автоматического увеличения размера хранилища:-
plannedUsageThreshold— процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания.Значение задается в процентах от
0до100. По умолчанию —0(автоматическое расширение отключено).Если вы задали этот параметр, настройте расписание окна технического обслуживания перед созданием группы хостов.
-
emergencyUsageThreshold— процент заполнения хранилища, при котором хранилище будет увеличено немедленно.Значение задается в процентах от
0до100. По умолчанию —0(автоматическое расширение отключено).Важно
Если заданы оба порога, значение
emergencyUsageThresholdдолжно быть не меньшеplannedUsageThreshold. -
diskSizeLimit— максимальный размер хранилища (в байтах), который может быть установлен при достижении одного из заданных процентов заполнения.
Важно
- Размер хранилища нельзя уменьшить.
- Во время изменения размера хранилища хосты кластера будут недоступны.
-
-
-
Чтобы создать группу хостов
OpenSearch:-
Воспользуйтесь методом Cluster.AddOpenSearchNodeGroup и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/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.yandexcloud.kz/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": <разрешить_публичный_доступ_к_хостам>, "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— разрешение на подключение к хосту из интернета:trueилиfalse. -
disk_size_autoscaling— настройки автоматического увеличения размера хранилища:-
planned_usage_threshold— процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания.Значение задается в процентах от
0до100. По умолчанию —0(автоматическое расширение отключено).Если вы задали этот параметр, настройте расписание окна технического обслуживания перед созданием группы хостов.
-
emergency_usage_threshold— процент заполнения хранилища, при котором хранилище будет увеличено немедленно.Значение задается в процентах от
0до100. По умолчанию —0(автоматическое расширение отключено).Важно
Если заданы оба порога, значение
emergency_usage_thresholdдолжно быть не меньше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.yandexcloud.kz: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.yandexcloud.kz: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 ГБ.
-
-
(Опционально) Настройте автоматическое увеличение размера диска:
-
В поле Увеличивать размер задайте соответствующие условия, чтобы:
-
Размер хранилища увеличился в следующее окно обслуживания, когда хранилище окажется заполнено более чем на указанную долю (%). Если вы задали этот параметр, настройте расписание окна обслуживания.
-
Размер хранилища увеличился незамедлительно, когда хранилище окажется заполнено более чем на указанную долю (%).
Важно
Если заданы оба условия, порог для незамедлительного увеличения должен быть выше, чем для планового.
-
-
В поле Максимальный размер хранилища укажите максимальный размер хранилища после увеличения.
Важно
- Размер хранилища нельзя уменьшить.
- Во время изменения размера хранилища хосты кластера будут недоступны.
-
-
Расположение хостов по зонам доступности и подсетям.
-
Количество хостов.
-
Публичный доступ к хостам.
-
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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 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и добавьте в него следующее содержимое:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).{ "updateMask": "resources,hostsCount,zoneIds,subnetIds,assignPublicIp,diskSizeAutoscaling", "nodeGroupSpec": { "resources": { "resourcePresetId": "<класс_хостов>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" }, "hostsCount": "<число_хостов>", "zoneIds": [ "<зона_доступности_1>", "<зона_доступности_2>", "<зона_доступности_3>" ], "subnetIds": [ "<идентификатор_подсети_1>", "<идентификатор_подсети_2>", "<идентификатор_подсети_3>" ], "assignPublicIp": <разрешить_публичный_доступ_к_хостам>, "diskSizeAutoscaling": { "plannedUsageThreshold": "<процент_для_планового_увеличения>", "emergencyUsageThreshold": "<процент_для_незамедлительного_увеличения>", "diskSizeLimit": "<максимальный_размер_хранилища_в_байтах>" } } }Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую. -
nodeGroups— настройки хостов:-
resources— ресурсы кластера:resourcePresetId— класс хостов;diskSize— размер диска в байтах;diskTypeId— тип диска.
-
hostsCount— количество хостов в группе. Миниальное число хостовDATAиDashboards— один, хостовMANAGER— три. -
zoneIds— список зон доступности, где размещаются хосты кластера. -
subnetIds— список идентификаторов подсетей. -
assignPublicIp— разрешение на подключение к хосту из интернета:trueилиfalse. -
diskSizeAutoscaling— настройки автоматического увеличения размера хранилища:-
plannedUsageThreshold— процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания.Значение задается в процентах от
0до100. По умолчанию —0(автоматическое расширение отключено).Если вы задали этот параметр, настройте расписание окна технического обслуживания перед созданием группы хостов.
-
emergencyUsageThreshold— процент заполнения хранилища, при котором хранилище будет увеличено немедленно.Значение задается в процентах от
0до100. По умолчанию —0(автоматическое расширение отключено).Важно
Если заданы оба порога, значение
emergencyUsageThresholdдолжно быть не меньшеplannedUsageThreshold. -
diskSizeLimit— максимальный размер хранилища (в байтах), который может быть установлен при достижении одного из заданных процентов заполнения.
Важно
- Размер хранилища нельзя уменьшить.
- Во время изменения размера хранилища хосты кластера будут недоступны.
-
-
-
-
Чтобы изменить конфигурацию группы хостов
OpenSearch:-
Воспользуйтесь методом Cluster.UpdateOpenSearchNodeGroup и выполните запрос, например, с помощью cURL
:curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/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.yandexcloud.kz/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": <разрешить_публичный_доступ_к_хостам>, "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— разрешение на подключение к хосту из интернета:trueилиfalse. -
disk_size_autoscaling— настройки автоматического увеличения размера хранилища:-
planned_usage_threshold— процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания.Значение задается в процентах от
0до100. По умолчанию —0(автоматическое расширение отключено).Если вы задали этот параметр, настройте расписание окна технического обслуживания перед созданием группы хостов.
-
emergency_usage_threshold— процент заполнения хранилища, при котором хранилище будет увеличено немедленно.Значение задается в процентах от
0до100. По умолчанию —0(автоматическое расширение отключено).Важно
Если заданы оба порога, значение
emergency_usage_thresholdдолжно быть не меньше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.yandexcloud.kz: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.yandexcloud.kz:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.UpdateDashboardsNodeGroup \ < body.jsonИдентификатор кластера можно запросить со списком кластеров в каталоге. Название группы хостов можно запросить с детальной информацией о кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Удалить группу хостов
При удалении группы хостов действует ограничение: нельзя удалить единственную группу хостов с ролью DATA.
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for OpenSearch. - Нажмите на имя нужного кластера, затем выберите вкладку
Группы хостов. - Нажмите на значок
в строке нужной группы и выберите пункт Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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 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-токен>" -
Чтобы удалить группу хостов
OpenSearch:-
Воспользуйтесь методом Cluster.DeleteOpenSearchNodeGroup и выполните запрос, например, с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-opensearch/v1/clusters/<идентификатор_кластера>/opensearch/node_groups/<название_группы_хостов>'Идентификатор кластера можно запросить со списком кластеров в каталоге. Название группы хостов можно запросить с детальной информацией о кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы удалить группу хостов
Dashboards:-
Воспользуйтесь методом Cluster.DeleteDashboardsNodeGroup и выполните запрос, например, с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/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.yandexcloud.kz: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.yandexcloud.kz: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.yandexcloud.kz/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.yandexcloud.kz:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.ListHostsИдентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.