Техническое обслуживание кластера Trino
Вы можете управлять техническим обслуживанием кластера Yandex Managed Service for Trino.
Получить список обслуживаний
Для сервиса Managed Service for Trino можно получить список обслуживаний в облаке, каталоге или кластере.
Получить список обслуживаний в облаке
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом REST API list для ресурса Maintenance и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://trino.api.cloud.yandex.net/managed-trino/v1/maintenances?cloudId=<идентификатор_облака>'О том, как получить идентификатор облака, читайте в инструкции.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом gRPC API MaintenanceService/List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/trino/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cloud_id": "<идентификатор_облака>" }' \ trino.api.cloud.yandex.net:443 \ yandex.cloud.trino.v1.MaintenanceService.ListО том, как получить идентификатор облака, читайте в инструкции.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить список обслуживаний в каталоге
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом REST API list для ресурса Maintenance и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://trino.api.cloud.yandex.net/managed-trino/v1/maintenances?folderId=<идентификатор_каталога>'О том, как получить идентификатор каталога, читайте в инструкции.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом gRPC API MaintenanceService/List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/trino/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "folder_id": "<идентификатор_каталога>" }' \ trino.api.cloud.yandex.net:443 \ yandex.cloud.trino.v1.MaintenanceService.ListО том, как получить идентификатор каталога, читайте в инструкции.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить список обслуживаний в кластере
- В консоли управления
выберите каталог. - Перейдите
в сервис Managed Service for Trino. - Нажмите на имя нужного кластера и выберите вкладку Обслуживание.
Чтобы просмотреть обслуживания с определенным статусом, нажмите кнопку Статус над списком обслуживаний и в выпадающем меню выберите нужный статус. Чтобы найти конкретное обслуживание, введите его идентификатор или имя задания в поле над списком обслуживаний.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом REST API list для ресурса Maintenance и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://trino.api.cloud.yandex.net/managed-trino/v1/maintenances?resourceId=<идентификатор_кластера>'Идентификатор кластера можно получить со списком кластеров.
Если в ответе есть
nextPageToken, передайте его в следующем запросе в параметреpageToken, чтобы получить следующую страницу списка. -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом gRPC API MaintenanceService/List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/trino/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "resource_id": "<идентификатор_кластера>" }' \ trino.api.cloud.yandex.net:443 \ yandex.cloud.trino.v1.MaintenanceService.ListИдентификатор кластера можно получить со списком кластеров.
Если в ответе есть
nextPageToken, передайте его в следующем запросе в параметреpage_token, чтобы получить следующую страницу списка. -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить информацию об обслуживании
- Откройте список обслуживаний нужного кластера.
- Нажмите на идентификатор нужного обслуживания.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом REST API get для ресурса Maintenance и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://trino.api.cloud.yandex.net/managed-trino/v1/maintenances/<идентификатор_обслуживания>'Идентификатор обслуживания можно получить со списком обслуживаний в облаке, каталоге или кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом gRPC API MaintenanceService/Get и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/trino/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "maintenance_id": "<идентификатор_обслуживания>" }' \ trino.api.cloud.yandex.net:443 \ yandex.cloud.trino.v1.MaintenanceService.GetИдентификатор обслуживания можно получить со списком обслуживаний в облаке, каталоге или кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить логи технического обслуживания кластера
- В консоли управления
выберите каталог. - Перейдите
в сервис Managed Service for Trino. - Нажмите на имя нужного кластера и выберите вкладку Обслуживание.
- Нажмите на идентификатор нужного обслуживания.
- Нажмите ссылку Логи задания.
Перенести запланированное обслуживание
Обслуживание в статусе Запланировано назначено на определенную дату и время, которые указаны в столбце Дата начала. При необходимости их можно перенести на новую дату и время.
Чтобы перенести обслуживание на новую дату и время:
-
В консоли управления
выберите каталог. -
Перейдите
в сервис Managed Service for Trino. -
Нажмите на имя нужного кластера и выберите вкладку Обслуживание.
-
Нажмите на значок
в строке обслуживания со статусом Запланировано. -
В выпадающем меню выберите
Перенести. -
В открывшемся окне:
- Чтобы перенести обслуживание вперед на следующее окно обслуживания, нажмите На следующее окно и затем Перенести.
- Чтобы перенести обслуживание вперед или назад на определенную дату и время по UTC, нажмите Выбрать дату (UTC), затем выберите новую дату и время и нажмите Перенести.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом REST API reschedule для ресурса Maintenance и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://trino.api.cloud.yandex.net/managed-trino/v1/maintenances/<идентификатор_обслуживания>:reschedule' \ --data '{ "rescheduleType": "<тип_переноса>", "scheduledAt": "<временная_метка>" }'Где
rescheduleType— тип переноса, принимает одно из двух значений:NEXT_AVAILABLE_WINDOW— перенести обслуживание на ближайшее окно;SPECIFIC_TIME— перенести обслуживание на определенную дату и время.
Временная метка должна иметь формат RFC 3339
, например:2006-01-02T15:04:05Z. При выборе типа переносаNEXT_AVAILABLE_WINDOWпараметрscheduledAtуказывать не нужно.Идентификатор обслуживания можно получить со списком обслуживаний в облаке, каталоге или кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера. Дождитесь завершения операции и получите информацию об обслуживании, чтобы проверить новое время.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом gRPC API MaintenanceService/Reschedule и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/trino/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "maintenance_id": "<идентификатор_обслуживания>", "reschedule_type": "<тип_переноса>", "scheduled_at": "<временная_метка>" }' \ trino.api.cloud.yandex.net:443 \ yandex.cloud.trino.v1.MaintenanceService.RescheduleГде
reschedule_type— тип переноса, принимает одно из двух значений:NEXT_AVAILABLE_WINDOW— перенести обслуживание на ближайшее окно;SPECIFIC_TIME— перенести обслуживание на определенную дату и время.
Временная метка должна иметь формат RFC 3339
, например:2006-01-02T15:04:05Z. При выборе типа переносаNEXT_AVAILABLE_WINDOWпараметрscheduled_atуказывать не нужно.Идентификатор обслуживания можно получить со списком обслуживаний в облаке, каталоге или кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера. Дождитесь завершения операции и получите информацию об обслуживании, чтобы проверить новое время.
Провести запланированное обслуживание немедленно
Обслуживание со статусом Запланировано при необходимости можно провести немедленно, не дожидаясь момента, указанного в столбце Дата начала.
Чтобы провести запланированное обслуживание кластера немедленно:
- В консоли управления
выберите каталог. - Перейдите
в сервис Managed Service for Trino. - Нажмите на имя нужного кластера и выберите вкладку Обслуживание.
- Нажмите на значок
в строке нужного обслуживания. - В выпадающем меню выберите
Провести сейчас.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом REST API reschedule для ресурса Maintenance и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://trino.api.cloud.yandex.net/managed-trino/v1/maintenances/<идентификатор_обслуживания>:reschedule' \ --data '{ "rescheduleType": "IMMEDIATE" }'Идентификатор обслуживания можно получить со списком обслуживаний в облаке, каталоге или кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера. Чтобы проверить состояние задания, получите информацию об обслуживании.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом gRPC API MaintenanceService/Reschedule и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/trino/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "maintenance_id": "<идентификатор_обслуживания>", "reschedule_type": "IMMEDIATE" }' \ trino.api.cloud.yandex.net:443 \ yandex.cloud.trino.v1.MaintenanceService.RescheduleИдентификатор обслуживания можно получить со списком обслуживаний в облаке, каталоге или кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера. Чтобы проверить состояние задания, получите информацию об обслуживании.
Настроить окно обслуживания
По умолчанию техническое обслуживание может быть запланировано на любое время. Вы можете выбрать определенный день недели и интервал времени, на который будет планироваться техническое обслуживание. Например, можно указать время, когда кластер наименее загружен.
-
В консоли управления
выберите каталог. -
Перейдите
в сервис Managed Service for Trino. -
Нажмите на имя нужного кластера и выберите вкладку Обслуживание.
-
Нажмите кнопку
Настроить окно обслуживания. -
В открывшемся окне:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт В любое время (по умолчанию).
- Чтобы разрешить проведение технического обслуживания раз в неделю в определенное время суток, выберите пункт По расписанию и укажите день недели и интервал времени по UTC.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы изменить настройки окна обслуживания:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-trino cluster update --help -
Выполните команду:
yc managed-trino 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 с планом инфраструктуры.
Инструкция по созданию файла описана в разделе Создание кластера.
-
Чтобы изменить время технического обслуживания (в т. ч. для выключенных кластеров), добавьте к описанию кластера блок
maintenance_window:resource "yandex_trino_cluster" "<имя_кластера>" { ... maintenance_window = { type = <тип_технического_обслуживания> day = <день_недели> hour = <порядковый_номер_часового_интервала> } ... }Где:
-
type— тип технического обслуживания. Принимает значения:ANYTIME(по умолчанию) — в любое время.WEEKLY— по расписанию.
-
day— день недели для типаWEEKLY:MON,TUE,WED,THU,FRI,SATилиSUN. -
hour— порядковый номер часового интервала по UTC для типаWEEKLY: от1до24.Например,
1соответствует интервалу с00:00до01:00,5— с04:00до05:00.
Имя кластера можно получить со списком кластеров в каталоге.
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "updateMask": "maintenanceWindow", "maintenanceWindow": { "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<порядковый_номер_часового_интервала>" } } }Где:
-
updateMask— перечень изменяемых параметров в строку через запятую.В данном случае передается только один параметр.
-
maintenanceWindow— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Передайте один из двух параметров:-
anytime— техническое обслуживание происходит в любое время. Передайте пустой объект{}. -
weeklyMaintenanceWindow— техническое обслуживание происходит раз в неделю в указанное время:-
day— день недели:MON,TUE,WED,THU,FRI,SATилиSUN. -
hour— порядковый номер часового интервала по UTC: от1до24.Например,
1соответствует интервалу с00:00до01:00,5— с04:00до05:00.
-
-
-
-
Воспользуйтесь методом REST API update для ресурса Cluster и выполните запрос, например с помощью cURL
:curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://trino.api.cloud.yandex.net/managed-trino/v1/clusters/<идентификатор_кластера>' \ --data '@body.json'Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "cluster_id": "<идентификатор_кластера>", "update_mask": "maintenanceWindow", "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<порядковый_номер_часового_интервала>" } } }Где:
-
cluster_id— идентификатор кластера.Идентификатор кластера можно получить со списком кластеров в каталоге.
-
update_mask— перечень изменяемых параметров в строку через запятую. В JSON названия параметров указываются в форматеlowerCamelCase.В данном случае передается только один параметр.
-
maintenance_window— настройки окна технического обслуживания (в т. ч. для выключенных кластеров). Передайте один из двух параметров:-
anytime— техническое обслуживание происходит в любое время. Передайте пустой объект{}. -
weekly_maintenance_window— техническое обслуживание происходит раз в неделю в указанное время:-
day— день недели:MON,TUE,WED,THU,FRI,SATилиSUN. -
hour— порядковый номер часового интервала по UTC: от1до24.Например,
1соответствует интервалу с00:00до01:00,5— с04:00до05:00.
-
-
-
-
Воспользуйтесь вызовом gRPC API ClusterService/Update и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/trino/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ trino.api.cloud.yandex.net:443 \ yandex.cloud.trino.v1.ClusterService.Update \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.