Техническое обслуживание кластера Trino
Вы можете управлять техническим обслуживанием кластера Yandex Managed Service for Trino.
Получить список обслуживаний
Для сервиса Managed Service for Trino можно получить список обслуживаний в облаке, каталоге или кластере.
Получить список обслуживаний в облаке
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Maintenance.List и выполните запрос, например с помощью 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/. -
Воспользуйтесь вызовом 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-токен>" -
Воспользуйтесь методом Maintenance.List и выполните запрос, например с помощью 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/. -
Воспользуйтесь вызовом 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-токен>" -
Воспользуйтесь методом Maintenance.List и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://trino.api.cloud.yandex.net/managed-trino/v1/maintenances?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/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Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить информацию об обслуживании
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Maintenance.Get и выполните запрос, например с помощью 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/. -
Воспользуйтесь вызовом 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-токен>" -
Воспользуйтесь методом Maintenance.Reschedule и выполните запрос, например с помощью 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/. -
Воспользуйтесь вызовом 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-токен>" -
Воспользуйтесь методом Maintenance.Reschedule и выполните запрос, например с помощью 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/. -
Воспользуйтесь вызовом 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 <имя_или_идентификатор_кластера> \ --deletion-protection \ --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.
-
-
-
-
Воспользуйтесь методом Cluster.Update и выполните запрос, например с помощью cURL
:curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --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": { "paths": ["maintenance_window"] }, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<порядковый_номер_часового_интервала>" } } }Где:
-
cluster_id— идентификатор кластера.Идентификатор кластера можно получить со списком кластеров в каталоге.
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае передается только один параметр.
-
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.
-
-
-
-
Воспользуйтесь вызовом 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 -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.