Техническое обслуживание кластера OpenSearch
Вы можете управлять техническим обслуживанием кластера Yandex Managed Service for OpenSearch.
Получить список обслуживаний
Для сервиса Managed Service for OpenSearch можно получить список обслуживаний в облаке, каталоге или кластере.
Получить список обслуживаний в облаке
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Maintenance.List и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-opensearch/v1/maintenances' \ --data '{ "cloudId": "<идентификатор_облака>" }'О том, как получить идентификатор облака, читайте в инструкции.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом MaintenanceService.List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cloud_id": "<идентификатор_облака>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.opensearch.v1.MaintenanceService.ListО том, как получить идентификатор облака, читайте в инструкции.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить список обслуживаний в каталоге
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Maintenance.List и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-opensearch/v1/maintenances' \ --data '{ "folderId": "<идентификатор_каталога>" }'О том, как получить идентификатор каталога, читайте в инструкции.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом MaintenanceService.List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "folder_id": "<идентификатор_каталога>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.opensearch.v1.MaintenanceService.ListО том, как получить идентификатор каталога, читайте в инструкции.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить список обслуживаний в кластере
- Перейдите
в сервис Managed Service for OpenSearch. - Нажмите на имя нужного кластера и выберите вкладку Обслуживание.
Чтобы просмотреть обслуживания с определенным статусом, нажмите кнопку Статус над списком обслуживаний и в выпадающем меню выберите нужный статус. Вы также можете найти обслуживание по его идентификатору или имени задания — используйте поле над списком обслуживаний.
Чтобы получить информацию о влиянии обслуживания на доступность кластера, нажмите на идентификатор нужного обслуживания. В блоке Подробнее о задании отображается информация о влиянии обслуживания на пользователей.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Maintenance.List и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-opensearch/v1/maintenances' \ --data '{ "resourceId": "<идентификатор_кластера>" }'Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом MaintenanceService.List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "resource_id": "<идентификатор_кластера>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.opensearch.v1.MaintenanceService.ListИдентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить информацию об обслуживании
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Maintenance.Get и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-opensearch/v1/maintenances/<идентификатор_обслуживания>'Идентификатор обслуживания можно запросить со списком обслуживаний в облаке, каталоге или кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом MaintenanceService.Get и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "maintenance_id": "<идентификатор_обслуживания>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.opensearch.v1.MaintenanceService.GetИдентификатор обслуживания можно запросить со списком обслуживаний в облаке, каталоге или кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить логи кластера, относящиеся к техническому обслуживанию
- Перейдите
в сервис Managed Service for OpenSearch. - Нажмите на имя нужного кластера и выберите вкладку Обслуживание.
- Нажмите на идентификатор нужного обслуживания.
- Нажмите ссылку Логи задания.
Перенести запланированное обслуживание
Обслуживания, имеющие статус Запланировано, назначены на определенную дату и время, которые указаны в столбце Дата начала. При необходимости их можно перенести на новую дату и время.
Чтобы перенести обслуживание на новую дату и время:
- Перейдите
в сервис Managed Service for OpenSearch. - Нажмите на имя нужного кластера и выберите вкладку Обслуживание.
- Нажмите на значок
справа в строке обслуживания со статусом Запланировано. - В выпадающем меню выберите
Перенести. - В открывшемся окне:
- Чтобы перенести обслуживание вперед на следующее окно обслуживания, нажмите На следующее окно и затем Перенести.
- Чтобы перенести обслуживание вперед или назад на определенную дату и время по UTC, нажмите Выбрать дату (UTC), затем выберите новую дату и интервал времени и нажмите Перенести.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы перенести обслуживание на новую дату и время:
-
Посмотрите описание команды CLI для переноса обслуживания:
yc managed-opensearch cluster reschedule-maintenance --help -
Чтобы перенести обслуживание на ближайшее окно, выполните команду, указав тип переноса
next-available-window. Чтобы перенести на определенную дату и время, укажите тип переносаspecific-time:yc managed-opensearch cluster reschedule-maintenance <имя_или_идентификатор_кластера> \ --reschedule-type <тип_переноса> \ --delayed-until <временная_метка>Временная метка должна иметь один из следующих форматов:
- RFC-3339
- ЧЧ:ММ:СС
- количество часов и минут, на которые нужно сдвинуть обслуживание.
Например:
2006-01-02T15:04:05Z,15:04:05,2hили3h30m ago. При выборе типа переносаnext-available-windowпараметр--delayed-untilуказывать не нужно.Имя кластера можно получить со списком кластеров в каталоге.
- RFC-3339
Чтобы перенести обслуживание на новую дату и время:
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Перенесите обслуживание одним из двух способов:
-
Воспользуйтесь методом Cluster.RescheduleMaintenance и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-opensearch/v1/clusters/<идентификатор_кластера>:rescheduleMaintenance' \ --data '{ "rescheduleType": <тип_переноса>, "delayedUntil": <временная_метка> }'Где
rescheduleType— тип переноса, принимает одно из двух значений:NEXT_AVAILABLE_WINDOW— перенести обслуживание на ближайшее окно;SPECIFIC_TIME— перенести обслуживание на определенную дату и время.
Временная метка должна иметь формат RFC-3339
, например:2006-01-02T15:04:05Z. При выборе типа переносаNEXT_AVAILABLE_WINDOWпараметрdelayedUntilуказывать не нужно.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Воспользуйтесь методом Maintenance.Reschedule и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-opensearch/v1/maintenances/<идентификатор_обслуживания>:reschedule' \ --data '{ "rescheduleType": <тип_переноса>, "scheduledAt": <временная_метка> }'Где
rescheduleType— тип переноса, принимает одно из двух значений:NEXT_AVAILABLE_WINDOW— перенести обслуживание на ближайшее окно;SPECIFIC_TIME— перенести обслуживание на определенную дату и время.
Временная метка должна иметь формат RFC-3339
, например:2006-01-02T15:04:05Z. При выборе типа переносаNEXT_AVAILABLE_WINDOWпараметрscheduledAtуказывать не нужно.Идентификатор обслуживания можно запросить со списком обслуживаний в облаке, каталоге или кластере.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера для метода Cluster.RescheduleMaintenance или Maintenance.Reschedule.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Перенесите обслуживание одним из двух способов:
-
Воспользуйтесь вызовом ClusterService.RescheduleMaintenance и выполните запрос, например с помощью 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": "<идентификатор_кластера>", "reschedule_type": <тип_переноса>, "delayed_until": <временная_метка> }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.RescheduleMaintenanceГде
reschedule_type— тип переноса, принимает одно из двух значений:NEXT_AVAILABLE_WINDOW— перенести обслуживание на ближайшее окно;SPECIFIC_TIME— перенести обслуживание на определенную дату и время.
Временная метка должна иметь формат RFC-3339
, например:2006-01-02T15:04:05Z. При выборе типа переносаNEXT_AVAILABLE_WINDOWпараметрdelayed_untilуказывать не нужно.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Воспользуйтесь вызовом MaintenanceService.Reschedule и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "maintenance_id": "<идентификатор_обслуживания>", "reschedule_type": <тип_переноса>, "scheduled_at": <временная_метка> }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.opensearch.v1.MaintenanceService.RescheduleГде
reschedule_type— тип переноса, принимает одно из двух значений:NEXT_AVAILABLE_WINDOW— перенести обслуживание на ближайшее окно;SPECIFIC_TIME— перенести обслуживание на определенную дату и время.
Временная метка должна иметь формат RFC-3339
, например:2006-01-02T15:04:05Z. При выборе типа переносаNEXT_AVAILABLE_WINDOWпараметрdelayed_untilуказывать не нужно.Идентификатор обслуживания можно запросить со списком обслуживаний в облаке, каталоге или кластере.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера для вызова ClusterService.RescheduleMaintenance или MaintenanceService.Reschedule.
Провести запланированное обслуживание немедленно
Обслуживания со статусом Запланировано при необходимости можно провести немедленно, не дожидаясь момента, указанного в столбце Дата начала.
Чтобы провести запланированное обслуживание кластера немедленно:
- Перейдите
в сервис Managed Service for OpenSearch. - Нажмите на имя нужного кластера и выберите вкладку Обслуживание.
- Нажмите на значок
справа в строке обслуживания. - В выпадающем меню выберите
Провести сейчас.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы провести запланированное обслуживание кластера немедленно:
-
Посмотрите описание команды CLI для переноса обслуживания:
yc managed-opensearch cluster reschedule-maintenance --help -
Выполните команду, указав тип переноса
immediate:yc managed-opensearch cluster reschedule-maintenance <имя_или_идентификатор_кластера> \ --reschedule-type immediateИмя кластера можно получить со списком кластеров в каталоге.
Чтобы провести запланированное обслуживание кластера немедленно:
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Проведите обслуживание одним из двух способов:
-
Воспользуйтесь методом Cluster.RescheduleMaintenance и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-opensearch/v1/clusters/<идентификатор_кластера>:rescheduleMaintenance' \ --data '{ "rescheduleType": "IMMEDIATE" }'Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Воспользуйтесь методом Maintenance.Reschedule и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-opensearch/v1/maintenances/<идентификатор_обслуживания>:reschedule' \ --data '{ "rescheduleType": "IMMEDIATE" }'Идентификатор обслуживания можно запросить со списком обслуживаний в облаке, каталоге или кластере.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера для метода Cluster.RescheduleMaintenance или Maintenance.Reschedule.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Проведите обслуживание одним из двух способов:
-
Воспользуйтесь вызовом ClusterService.RescheduleMaintenance и выполните запрос, например с помощью 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": "<идентификатор_кластера>", "reschedule_type": "IMMEDIATE" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.RescheduleMaintenanceИдентификатор кластера можно запросить со списком кластеров в каталоге.
-
Воспользуйтесь вызовом MaintenanceService.Reschedule и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "maintenance_id": "<идентификатор_обслуживания>", "reschedule_type": "IMMEDIATE" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.opensearch.v1.MaintenanceService.RescheduleИдентификатор обслуживания можно запросить со списком обслуживаний в облаке, каталоге или кластере.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера для вызова ClusterService.RescheduleMaintenance или MaintenanceService.Reschedule.
Настроить окно обслуживания
По умолчанию техническое обслуживание может быть запланировано на любое время. Вы можете выбрать определенный день недели и часовой интервал, на который будет планироваться начало технического обслуживания. Например, можно указать интервал, когда кластер наименее загружен.
Важно
При выборе нового интервала обслуживания будет автоматически отменено запланированное обслуживание, если оно не попадает на новый интервал.
- Перейдите
в сервис Managed Service for OpenSearch. - Нажмите на имя нужного кластера и выберите вкладку Обслуживание.
- Нажмите кнопку
Настроить окно обслуживания. - В открывшемся окне:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт В любое время (по умолчанию).
- Чтобы разрешить проведение технического обслуживания раз в неделю в определенное время суток, выберите пункт По расписанию и укажите день недели и интервал времени по UTC.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для изменения окна обслуживания:
yc managed-opensearch cluster update --help -
Выполните команду:
yc managed-opensearch cluster update <имя_или_идентификатор_кластера> \ --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час>Где
type— тип технического обслуживания:-
anytime(по умолчанию) — в любое время. -
weekly— по расписанию. Для этого значения дополнительно укажите:-
day— день недели:MON,TUE,WED,THU,FRI,SATилиSUN. -
hour— порядковый номер часового интервала по UTC: от1до24.Например,
1соответствует интервалу с00:00до01:00,5— с04:00до05:00.
-
Имя кластера можно получить со списком кластеров в каталоге.
-
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкцию по созданию такого файла читайте в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for OpenSearch вы найдете в документации провайдера Terraform.
-
Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), добавьте к описанию кластера блок
maintenance_window:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... maintenance_window { type = "<тип_технического_обслуживания>" day = "<день_недели>" hour = <порядковый_номер_часового_интервала> } ... }Где:
-
type— тип технического обслуживания. Принимает значения:ANYTIME(по умолчанию) — в любое время.WEEKLY— по расписанию.
-
day— день недели:MON,TUE,WED,THU,FRI,SATилиSUN. -
hour— порядковый номер часового интервала по UTC: от1до24.Например,
1соответствует интервалу с00:00до01:00,5— с04:00до05:00.
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:
- создание, в том числе путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts, например:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } } -
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.Update и выполните запрос, например с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-opensearch/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "maintenanceWindow", "maintenanceWindow": { "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<порядковый_номер_часового_интервала>" } } }'Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
maintenanceWindow— настройки времени технического обслуживания (в том числе для выключенных кластеров). ВmaintenanceWindowпередайте один из двух параметров:-
anytime— техническое обслуживание может быть запланировано на любое время. -
weeklyMaintenanceWindow— техническое обслуживание может быть запланировано только на выбранный день недели и порядковый номер часового интервала:day— день недели в форматеDDD:MON,TUE,WED,THU,FRI,SATилиSUN;hour— порядковый номер часового интервала по UTC в форматеHH: от1до24.
-
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например с помощью 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/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": ["maintenance_window"] }, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<порядковый_номер_часового_интервала>" } } }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.UpdateГде:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае передается только один параметр.
-
maintenance_window— настройки времени технического обслуживания (в том числе для выключенных кластеров). Вmaintenance_windowпередайте один из двух параметров:-
anytime— техническое обслуживание может быть запланировано на любое время. -
weekly_maintenance_window— техническое обслуживание может быть запланировано только на выбранный день недели и час:day— день недели в форматеDDD:MON,TUE,WED,THU,FRI,SATилиSUN;hour— час дня по UTC в форматеHH: от1до24.
-
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.