Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for MySQL®
  • Начало работы
    • Все инструкции
      • Информация об имеющихся кластерах
      • Создание кластера
      • Изменение кластера
      • Остановка и запуск кластера
      • Управление хостами кластера
      • Миграция хостов в другую зону доступности
      • Управление резервными копиями
      • Обновление версии MySQL®
      • Удаление кластера
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Получить список хостов в кластере
  • Добавить хост
  • Изменить хост
  • Удалить хост
  1. Пошаговые инструкции
  2. Кластеры
  3. Управление хостами кластера

Управление хостами кластера MySQL®

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.
  • Получить список хостов в кластере
  • Добавить хост
  • Изменить хост
  • Удалить хост

Вы можете добавлять и удалять хосты кластера, а также управлять их настройками. О том, как перенести хосты кластера в другую зону доступности, читайте в инструкции.

Получить список хостов в кластереПолучить список хостов в кластере

Консоль управления
CLI
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Хосты.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы получить список хостов в кластере, выполните команду:

yc managed-mysql host list \
   --cluster-name=<имя_кластера>

Результат:

+----------------------------+----------------------+---------+--------+---------------+
|            NAME            |      CLUSTER ID      |  ROLE   | HEALTH |    ZONE ID    |
+----------------------------+----------------------+---------+--------+---------------+
| rc1b...mdb.yandexcloud.net | c9q5k4ve7ev4******** | MASTER  | ALIVE  | ru-central1-b |
| rc1a...mdb.yandexcloud.net | c9q5k4ve7ev4******** | REPLICA | ALIVE  | ru-central1-a |
+----------------------------+----------------------+---------+--------+---------------+

Имя кластера можно запросить со списком кластеров в каталоге.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.listHosts и выполните запрос, например, с помощью cURL:

    curl \
        --request GET \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>/hosts'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService/ListHosts и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.mysql.v1.ClusterService.ListHosts
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Добавить хостДобавить хост

Количество хостов в кластерах Managed Service for MySQL® ограничено квотами на количество CPU и объем памяти, которые доступны кластерам БД в вашем облаке. Чтобы проверить используемые ресурсы, откройте страницу Квоты и найдите блок Managed Databases.

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.

  2. Нажмите на имя нужного кластера и перейдите на вкладку Хосты.

  3. Нажмите кнопку Создать хост.

  4. Укажите параметры хоста:

    • Зону доступности.

    • Подсеть (если нужной подсети в списке нет, создайте ее).

    • Выберите опцию Публичный доступ, если хост должен быть доступен извне Yandex Cloud.

    • Приоритет назначения хоста мастером.

    • Приоритет хоста как MySQL®-реплики для создания резервной копии.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы добавить хост в кластер:

  1. Запросите список подсетей кластера, чтобы выбрать подсеть для нового хоста:

    yc vpc subnet list
    

    Результат:

    +----------------------+-----------+-----------------------+---------------+------------------+
    |          ID          |   NAME    |       NETWORK ID      |       ZONE    |      RANGE       |
    +----------------------+-----------+-----------------------+---------------+------------------+
    | b0cl69a2b4c6******** | default-d | enp6rq72rndgr******** | ru-central1-d | [172.**.*.*/20]  |
    | e2lkj9qwe762******** | default-b | enp6rq72rndgr******** | ru-central1-b | [10.**.*.*/16]   |
    | e9b0ph42bn96******** | a-2       | enp6rq72rndgr******** | ru-central1-a | [172.**.**.*/20] |
    | e9b9v22r88io******** | default-a | enp6rq72rndgr******** | ru-central1-a | [172.**.**.*/20] |
    +----------------------+-----------+-----------------------+---------------+------------------+
    

    Если нужной подсети в списке нет, создайте ее.

  2. Посмотрите описание команды CLI для добавления хостов:

    yc managed-mysql host add --help
    
  3. Выполните команду добавления хоста (в примере приведены не все доступные параметры):

    yc managed-mysql host add \
      --cluster-name=<имя_кластера> \
      --host zone-id=<идентификатор_зоны_доступности>,`
        `subnet-id=<идентификатор_подсети>,`
        `assign-public-ip=<публичный_доступ_к_хосту_подкластера>,`
        `replication-source=<имя_хоста-источника>,`
        `backup-priority=<приоритет_хоста_при_резервном_копировании>,`
        `priority=<приоритет_назначения_хоста_мастером>
    

    Где:

    • --cluster-name — имя кластера Managed Service for MySQL®.
    • --host — параметры хоста:
      • zone-id — зона доступности.
      • subnet-id — идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей.
      • assign-public-ip — доступность хоста из интернета: true или false.
      • replication-source — источник репликации для хоста.
      • backup-priority — приоритет хоста при резервном копировании: от 0 до 100.
      • priority — приоритет назначения хоста мастером при выходе из строя основного мастера: от 0 до 100.

    Имя кластера можно запросить со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Добавьте к описанию кластера Managed Service for MySQL® блок host:

    resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
      ...
      host {
        zone             = "<зона_доступности>"
        subnet_id        = <идентификатор_подсети>
        assign_public_ip = <публичный_доступ_к_хосту>
        priority         = <приоритет_назначения_хоста_мастером>
        ...
      }
    }
    

    Где:

    • assign_public_ip — публичный доступ к хосту: true или false.
    • priority — приоритет назначения хоста мастером: от 0 до 100.
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MySQL®:

  • создание кластера, в том числе путем восстановления из резервной копии, — 15 минут;
  • изменение кластера, в том числе обновление версии MySQL®, — 60 минут;
  • удаление кластера — 15 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.addHosts и выполните запрос, например, с помощью cURL:

    curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>/hosts:batchCreate' \
        --data '{
                  "hostSpecs": [
                    {
                      "zoneId": "<зона_доступности>",
                      "subnetId": "<идентификатор_подсети>",
                      "assignPublicIp": <публичный_адрес_хоста:_true_или_false>,
                      "replicationSource": "<FQDN_хоста>",
                      "backupPriority": "<приоритет_хоста_при_резервном_копировании>",
                      "priority": "<приоритет_назначения_хоста_мастером>"
                    }
                  ]
                }'
    

    Где hostSpecs — массив новых хостов. Один элемент массива содержит настройки для одного хоста и имеет следующую структуру:

    • zoneId — зона доступности.
    • subnetId — идентификатор подсети.
    • assignPublicIp — доступность хоста из интернета по публичному IP-адресу.
    • replicationSource — источник репликации для хоста для ручного управления потоками репликации. В параметре укажите FQDN хоста, который будет источником репликации.
    • backupPriority — приоритет хоста при резервном копировании: от 0 до 100.
    • priority — приоритет назначения хоста мастером при выходе из строя основного мастера: от 0 до 100.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService/AddHosts и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "host_specs": [
                {
                  "zone_id": "<зона_доступности>",
                  "subnet_id": "<идентификатор_подсети>",
                  "assign_public_ip": <публичный_адрес_хоста:_true_или_false>,
                  "replication_source": "<FQDN_хоста>",
                  "backup_priority": "<приоритет_хоста_при_резервном_копировании>",
                  "priority": "<приоритет_назначения_хоста_мастером>"
                }
              ]
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.mysql.v1.ClusterService.AddHosts
    

    Где host_specs — массив новых хостов. Один элемент массива содержит настройки для одного хоста и имеет следующую структуру:

    • zone_id — зона доступности.
    • subnet_id — идентификатор подсети.
    • assign_public_ip — доступность хоста из интернета по публичному IP-адресу.
    • replication_source — источник репликации для хоста для ручного управления потоками репликации. В параметре укажите FQDN хоста, который будет источником репликации.
    • backup_priority — приоритет хоста при резервном копировании: от 0 до 100.
    • priority — приоритет назначения хоста мастером при выходе из строя основного мастера: от 0 до 100.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Важно

Если после добавления хоста к нему невозможно подключиться, убедитесь, что группа безопасности кластера настроена корректно для подсети, в которую помещен хост.

Изменить хостИзменить хост

Для каждого хоста в кластере Managed Service for MySQL® можно:

  • Указать источник репликации.
  • Управлять публичным доступом.
  • Задать приоритет использования при резервном копировании.
  • Задать приоритет назначения хоста мастером при выходе из строя основного мастера.

Примечание

Перезапустить отдельный хост кластера невозможно. Для перезапуска хостов остановите и запустите кластер.

Консоль управления
CLI
Terraform
REST API
gRPC API

Чтобы изменить параметры хоста в кластере:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Хосты.
  3. Нажмите значок в строке нужного хоста и выберите пункт Редактировать.
  4. Задайте новые настройки для хоста:
    1. Выберите источник репликации для хоста, чтобы вручную управлять потоками репликации.
    2. Включите опцию Публичный доступ, если хост должен быть доступен извне Yandex Cloud.
    3. Задайте значение поля Приоритет мастера.
    4. Задайте значение поля Приоритет cоздания бэкапа.
  5. Нажмите кнопку Сохранить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы изменить параметры хоста, выполните команду (в примере приведены не все доступные параметры):

yc managed-mysql host update <имя_хоста> \
  --cluster-name=<имя_кластера> \
  --replication-source=<имя_хоста-источника> \
  --assign-public-ip=<публичный_доступ_к_хосту> \
  --backup-priority=<приоритет_хоста_при_резервном_копировании> \
  --priority=<приоритет_назначения_хоста_мастером>

Где:

  • --cluster-name — имя кластера Managed Service for MySQL®.
  • --replication-source — источник репликации для хоста.
  • --assign-public-ip — доступность хоста из интернета: true или false.
  • --backup-priority — приоритет хоста при резервном копировании: от 0 до 100.
  • --priority — приоритет назначения хоста мастером при выходе из строя основного мастера: от 0 до 100.

Имя хоста можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.

Чтобы изменить параметры хоста в кластере:

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Измените в описании кластера Managed Service for MySQL® атрибуты блока host, соответствующего изменяемому хосту.

    resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
      ...
      host {
        replication_source_name = "<источник_репликации>"
        assign_public_ip        = <публичный_доступ_к_хосту>
        priority                = <приоритет_назначения_хоста_мастером>
      }
    }
    

    Где:

    • assign_public_ip — публичный доступ к хосту: true или false.
    • priority — приоритет назначения хоста мастером: от 0 до 100.
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MySQL®:

  • создание кластера, в том числе путем восстановления из резервной копии, — 15 минут;
  • изменение кластера, в том числе обновление версии MySQL®, — 60 минут;
  • удаление кластера — 15 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.updateHosts и выполните запрос, например, с помощью cURL:

    curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>/hosts:batchUpdate' \
        --data '{
                  "updateHostSpecs": [
                    {
                      "updateMask": "assignPublicIp,replicationSource,backupPriority,priority",
                      "hostName": "<FQDN_хоста>",
                      "assignPublicIp": <публичный_адрес_хоста:_true_или_false>,
                      "replicationSource": "<FQDN_хоста>",
                      "backupPriority": "<приоритет_хоста_при_резервном_копировании>",
                      "priority": "<приоритет_назначения_хоста_мастером>"
                    }
                  ]
                }'
    

    Где updateHostSpecs — массив изменяемых хостов. Один элемент массива содержит настройки для одного хоста и имеет следующую структуру:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.
    • hostName — FQDN изменяемого хоста.
    • assignPublicIp — доступность хоста из интернета по публичному IP-адресу.
    • replicationSource — источник репликации для хоста для ручного управления потоками репликации. В параметре укажите FQDN хоста, который будет источником репликации.
    • backupPriority — приоритет хоста при резервном копировании: от 0 до 100.
    • priority — приоритет назначения хоста мастером при выходе из строя основного мастера: от 0 до 100.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService/UpdateHosts и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "update_host_specs": [
                {
                  "update_mask": {
                    "paths": [
                      "assign_public_ip", "replication_source", "backup_priority", "priority"
                    ]
                  },
                  "host_name": "<FQDN_хоста>",
                  "assign_public_ip": <публичный_адрес_хоста:_true_или_false>,
                  "replication_source": "<FQDN_хоста>",
                  "backup_priority": "<приоритет_хоста_при_резервном_копировании>",
                  "priority": "<приоритет_назначения_хоста_мастером>"
                }
              ]
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.mysql.v1.ClusterService.UpdateHosts
    

    Где update_host_specs — массив изменяемых хостов. Один элемент массива содержит настройки для одного хоста и имеет следующую структуру:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].
    • host_name — FQDN изменяемого хоста.
    • assign_public_ip — доступность хоста из интернета по публичному IP-адресу.
    • replication_source — источник репликации для хоста для ручного управления потоками репликации. В параметре укажите FQDN хоста, который будет источником репликации.
    • backup_priority — приоритет хоста при резервном копировании: от 0 до 100.
    • priority — приоритет назначения хоста мастером при выходе из строя основного мастера: от 0 до 100.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Важно

Если после изменения хоста к нему невозможно подключиться, убедитесь, что группа безопасности кластера настроена корректно для подсети, в которую помещен хост.

Удалить хостУдалить хост

Вы можете удалить хост из кластера MySQL®, если он не является единственным хостом. Чтобы заменить единственный хост, сначала создайте новый хост, а затем удалите старый.

Если хост является мастером в момент удаления, Managed Service for MySQL® автоматически назначит мастером следующую по приоритету реплику.

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Хосты.
  3. Нажмите значок в строке нужного хоста и выберите пункт Удалить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы удалить хост из кластера, выполните команду:

yc managed-mysql host delete <имя_хоста> \
   --cluster-name=<имя_кластера>

Имя хоста можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Удалите из описания кластера Managed Service for MySQL® блок host.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Введите слово yes и нажмите Enter.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MySQL®:

  • создание кластера, в том числе путем восстановления из резервной копии, — 15 минут;
  • изменение кластера, в том числе обновление версии MySQL®, — 60 минут;
  • удаление кластера — 15 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.deleteHosts и выполните запрос, например, с помощью cURL:

    curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>/hosts:batchDelete' \
        --data '{
                  "hostNames": [
                    "<FQDN_хоста>"
                  ]
                }'
    

    Где hostNames — массив с удаляемым хостом.

    В одном запросе можно передать только один FQDN хоста. Если нужно удалить несколько хостов, выполните запрос для каждого хоста.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService/DeleteHosts и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "host_names": [
                "<FQDN_хоста>"
              ]
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.mysql.v1.ClusterService.DeleteHosts
    

    Где host_names — массив с удаляемым хостом.

    В одном запросе можно передать только один FQDN хоста. Если нужно удалить несколько хостов, выполните запрос для каждого хоста.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Была ли статья полезна?

Предыдущая
Остановка и запуск кластера
Следующая
Миграция хостов в другую зону доступности
Проект Яндекса
© 2025 ООО «Яндекс.Облако»