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

Перенести группу виртуальных машин с сетевым балансировщиком нагрузки в другую зону доступности

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.

Чтобы перенести группу ВМ c сетевым балансировщиком нагрузки Yandex Network Load Balancer:

  1. Создайте подсеть в зоне доступности, в которую вы хотите перенести группу ВМ.

  2. Добавьте ВМ группы в новую зону доступности:

    Консоль управления
    CLI
    Terraform
    API
    1. В консоли управления откройте каталог, в котором находится нужная группа виртуальных машин.

    2. Выберите сервис Compute Cloud.

    3. На панели слева выберите Группы виртуальных машин.

    4. Выберите группу ВМ, которую хотите изменить.

    5. В правом верхнем углу нажмите Редактировать.

    6. В блоке Распределение добавьте зону доступности, в которую вы хотите перенести группу ВМ.

    7. Если у вас группа ВМ с ручным масштабированием, в блоке Масштабирование укажите размер группы, достаточный для размещения во всех выбранных зонах доступности.

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

    8. Если у вас автоматически масштабируемая группа ВМ с ручной (OPPORTUNISTIC) стратегией остановки, в поле Останавливать машины по стратегии измените стратегию на автоматическую (PROACTIVE).

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

    9. Нажмите Сохранить.

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

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

    1. Откройте файл со спецификацией группы виртуальных машин и измените шаблон ВМ:

      • В секции allocation_policy добавьте новую зону доступности.

      • В секции network_interface_specs добавьте идентификатор подсети, созданной ранее.

      • Если у вас группа ВМ с ручным масштабированием, в секции scale_policy укажите размер группы, достаточный для размещения во всех выбранных зонах доступности.

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

      • Если у вас автоматически масштабируемая группа ВМ с ручной (OPPORTUNISTIC) стратегией остановки, в секции deploy_policy измените стратегию на автоматическую (PROACTIVE).

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

    2. Посмотрите описание команды CLI для изменения группы ВМ:

      yc compute instance-group update --help
      
    3. Получите список всех групп ВМ в каталоге по умолчанию:

      yc compute instance-group list
      

      Результат:

      +----------------------+---------------------------------+--------+--------+
      |          ID          |              NAME               | STATUS |  SIZE  |
      +----------------------+---------------------------------+--------+--------+
      | cl15sjqilrei******** | first-fixed-group-with-balancer | ACTIVE |      3 |
      | cl19s7dmihgm******** | test-group                      | ACTIVE |      2 |
      +----------------------+---------------------------------+--------+--------+
      
    4. Измените группу ВМ:

      yc compute instance-group update \
        --id <идентификатор_группы_ВМ> \
        --file <файл_со_спецификацией_ВМ>
      

      Где:

      • --id — идентификатор группы ВМ.
      • --file — путь к файлу со спецификацией группы ВМ.

      Результат:

      id: cl15sjqilrei********
      ...
      allocation_policy:
      zones:
      - zone_id: <старая_зона_доступности>
      - zone_id: <новая_зона_доступности>
      ...
      

    Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

    1. Откройте файл конфигурации Terraform для группы виртуальных машин и добавьте в блоке allocation_policy новую зону доступности, а в блоке network_interface идентификатор подсети, созданной ранее.

      ...
      network_interface {
        subnet_ids = [
          "<идентификатор_подсети_в_старой_зоне_доступности>",
          "<идентификатор_подсети_в_новой_зоне_доступности>"
        ]
      }
      ...
      allocation_policy {
        zones = [
          "<старая_зона_доступности>",
          "<новая_зона_доступности>"
        ]
      }
      ...
      

      Где:

      • zones — зоны доступности, в которых будет размещена группа ВМ — новая и старая.
      • subnet_ids — идентификаторы подсетей в зонах доступности, в которых будет размещена группа ВМ.

      Если у вас группа ВМ с ручным масштабированием, в секции scale_policy укажите размер группы, достаточный для размещения во всех выбранных зонах доступности.

      ...
      scale_policy {
        fixed_scale {
          size = <количество_ВМ_в_группе>
        }
      }
      ...
      

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

      Если у вас автоматически масштабируемая группа ВМ с ручной (OPPORTUNISTIC) стратегией остановки, измените стратегию на автоматическую (PROACTIVE):

      ...
      deploy_policy {
        strategy = "proactive" 
      }
      ...
      

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

      Более подробную информацию о параметрах ресурсов в Terraform см. в документации провайдера.

    2. Примените изменения:

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

      2. Проверьте корректность конфигурационного файла с помощью команды:

        terraform validate
        

        Если конфигурация является корректной, появится сообщение:

        Success! The configuration is valid.
        
      3. Выполните команду:

        terraform plan
        

        В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

      4. Примените изменения конфигурации:

        terraform apply
        
      5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

      Добавится новая зона доступности для группы ВМ. Проверить изменения можно в консоли управления или с помощью команды CLI:

      yc compute instance-group get <имя_группы_ВМ>
      

    Воспользуйтесь методом REST API update для ресурса InstanceGroup или вызовом gRPC API InstanceGroupService/Update.

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

    Если у вас автоматически масштабируемая группа ВМ с ручной (OPPORTUNISTIC) стратегией остановки, измените стратегию на автоматическую (PROACTIVE). Вернуть ручную стратегию остановки можно будет после воссоздания всех ВМ группы в новой зоне доступности и удаления всех ВМ в старой.

    Дождитесь пока ВМ создадутся в новой зоне доступности и перейдут в статус Running Actual.

  3. В зависимости от типа балансировщика, выполните следующие действия:

    • Внешний балансировщик (EXTERNAL):

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

        После этого новая зона доступности будет включена в маршрутизацию трафика через балансировщик. Этот процесс может занимать до 2 минут. См. Сходимость маршрутизации в зоне доступности.

      2. Удалите ВМ группы из старой зоны доступности:

        Консоль управления
        CLI
        Terraform
        API
        1. В консоли управления откройте каталог, в котором находится нужная группа виртуальных машин.
        2. Выберите сервис Compute Cloud.
        3. На панели слева выберите Группы виртуальных машин.
        4. Выберите группу ВМ, которую хотите изменить.
        5. В правом верхнем углу нажмите Редактировать.
        6. В блоке Распределение отключите старую зону доступности.
        7. Нажмите Сохранить.
        1. Откройте файл со спецификацией группы виртуальных машин и измените шаблон ВМ:

          • В секции allocation_policy удалите старую зону доступности.
          • В секции network_interface_specs удалите идентификатор подсети в старой зоне доступности.
        2. Измените группу ВМ:

          yc compute instance-group update \
            --id <идентификатор_группы_ВМ> \
            --file <файл_со_спецификацией_ВМ>
          

          Где:

          • --id — идентификатор группы ВМ.
          • --file — путь к файлу со спецификацией группы ВМ.

          Результат:

          id: cl15sjqilrei********
          ...
          allocation_policy:
          zones:
          - zone_id: <новая_зона_доступности>
          ...
          
        1. Откройте файл конфигурации Terraform для группы виртуальных машин и удалите в блоке allocation_policy старую зону доступности, а в блоке network_interface идентификатор подсети в старой зоне:

          ...
          network_interface {
            subnet_ids = ["<идентификатор_подсети_в_новой_зоне_доступности>"]
          }
          ...
          allocation_policy {
            zones = ["<новая_зона_доступности>"]
          }
          ...
          

          Где:

          • zones — зона доступности, в которую вы хотите переместить группу ВМ. Можно указать несколько зон.
          • subnet_ids — идентификатор подсети в той зоне доступности, в которую вы хотите перенести группу ВМ.

          Более подробную информацию о параметрах ресурсов в Terraform см. в документации провайдера.

        2. Примените изменения:

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

          2. Проверьте корректность конфигурационного файла с помощью команды:

            terraform validate
            

            Если конфигурация является корректной, появится сообщение:

            Success! The configuration is valid.
            
          3. Выполните команду:

            terraform plan
            

            В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

          4. Примените изменения конфигурации:

            terraform apply
            
          5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

          ВМ группы будут удалены в старой зоне доступности. Проверить изменения можно в консоли управления или с помощью команды CLI:

          yc compute instance-group get <имя_группы_ВМ>
          

        Воспользуйтесь методом REST API update для ресурса InstanceGroup или вызовом gRPC API InstanceGroupService/Update.

    • Внутренний балансировщик (INTERNAL):

      1. Перенесите ресурсы, которым нужен доступ к внутреннему балансировщику, в подсеть, созданную ранее.

      2. Измените обработчик балансировщика:

        Консоль управления
        CLI
        Terraform
        API
        1. В консоли управления выберите каталог, в котором находится балансировщик.

        2. В списке сервисов выберите Network Load Balancer.

        3. Нажмите на имя нужного балансировщика.

        4. В блоке Обработчики нажмите и выберите Удалить обработчик.

        5. Справа сверху нажмите Создать обработчик и создайте новый обработчик.

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

        6. Нажмите кнопку Добавить.

        1. Посмотрите описание команды CLI для удаления обработчика:

          yc load-balancer network-load-balancer remove-listener --help
          
        2. Получите список всех сетевых балансировщиков в каталоге по умолчанию:

          yc load-balancer network-load-balancer list
          

          Результат:

          +----------------------+---------------+-----------------+----------+----------------+------------------------+----------+
          |          ID          |     NAME      |    REGION ID    |   TYPE   | LISTENER COUNT | ATTACHED TARGET GROUPS |  STATUS  |
          +----------------------+---------------+-----------------+----------+----------------+------------------------+----------+
          | enp2btm6uvdr******** | nlb-34aa5-db1 | ru-central1 | INTERNAL |              0 |                        |  ACTIVE  |
          | enpvg9o73hqh******** | test-balancer | ru-central1 | EXTERNAL |              0 |                        |  ACTIVE  |
          +----------------------+---------------+-----------------+----------+----------------+------------------------+----------+
          
        3. Получите имя обработчика:

          yc load-balancer network-load-balancer get <имя_балансировщика>
          

          Результат:

          id: enp2btm6uvdr********
          folder_id: b1gmit33ngp3********
          ...
          listeners:
            - name: listener-980ee-af3
              address: 172.17.0.36
          
        4. Удалите обработчик:

          yc load-balancer network-load-balancer remove-listener <имя_балансировщика> \
            --listener-name <имя_обработчика>
          

          Где --listener-name — имя обработчика, который нужно удалить.

          Результат:

          done (1s)
          id: enpvg9o73hqh********
          folder_id: b1gmit33ngp3********
          created_at: "2023-08-09T13:44:57Z"
          name: nlb-34aa5-db1
          region_id: ru-central1
          status: INACTIVE
          type: INTERNAL
          
        5. Посмотрите описание команды CLI для добавления обработчика:

          yc load-balancer network-load-balancer add-listener --help
          
        6. Добавьте обработчик:

          yc load-balancer network-load-balancer add-listener <имя_балансировщика> \
            --listener name=<имя_обработчика>,`
                       `port=<порт>,`
                       `target-port=<целевой_порт>,`
                       `internal-subnet-id=<идентификатор_подсети>
          

          Где:

          • name — имя обработчика.
          • port — порт, на котором сетевой балансировщик будет принимать входящий трафик.
          • target-port — целевой порт, на который балансировщик будет направлять трафик.
          • internal-subnet-id — идентификатор подсети в той зоне доступности, в которую вы хотите перенести балансировщик.

          Результат:

          done (1s)
          id: enp2btm6uvdr********
          folder_id: b1gmit33ngp3********
          created_at: "2023-08-09T08:37:03Z"
          name: nlb-34aa5-db1
          region_id: ru-central1
          status: ACTIVE
          type: INTERNAL
          listeners:
            - name: new-listener
              address: 10.0.0.16
              port: "22"
              protocol: TCP
              target_port: "22"
              subnet_id: e2lgp8o00g06********
              ip_version: IPV4
          
        1. Откройте файл Terraform с конфигурацией балансировщика и в блоке listener замените значения полей name и subnet_id:

          listener { 
            name = "<новое_имя_обработчика>" 
            port = 80 
            target_port = 81 
            protocol = "tcp" 
            internal_address_spec { 
              subnet_id = "<идентификатор_подсети_в_целевой_зоне_доступности>" 
              ip_version = "ipv4" 
            } 
          }
          

          Где:

          • name — имя обработчика.
          • port — порт, на котором сетевой балансировщик будет принимать входящий трафик.
          • target_port — целевой порт, на который балансировщик будет направлять трафик.
          • subnet_id — идентификатор подсети в той зоне доступности, в которую вы хотите перенести группу ВМ.

          Более подробную информацию о параметрах ресурсов в Terraform см. в документации провайдера.

        2. Примените изменения:

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

          2. Проверьте корректность конфигурационного файла с помощью команды:

            terraform validate
            

            Если конфигурация является корректной, появится сообщение:

            Success! The configuration is valid.
            
          3. Выполните команду:

            terraform plan
            

            В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

          4. Примените изменения конфигурации:

            terraform apply
            
          5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

          Будет добавлен новый обработчик балансировщика в новой зоне доступности. Проверить создание нового обработчика можно в консоли управления.

        1. Чтобы удалить обработчик сетевого балансировщика, воспользуйтесь методом REST API removeListener для ресурса NetworkLoadBalancer или вызовом gRPC API NetworkLoadBalancerService/RemoveListener и передайте в запросе:

          • Идентификатор балансировщика в параметре networkLoadBalancerId.
          • Имя обработчика в параметре listenerName.

          Идентификатор балансировщика можно получить со списком сетевых балансировщиков в каталоге, имя обработчика — с детальной информацией о сетевом балансировщике.

        2. Чтобы добавить обработчик сетевого балансировщика, воспользуйтесь методом API addListener для ресурса NetworkLoadBalancer или вызовом gRPC API NetworkLoadBalancerService/AddListener и передайте в запросе:

          {
            "listenerSpec": {
              "name": "<имя_обработчика>",
              "port": "<входящий_порт>",
              "targetPort": "<целевой_порт>",
              "internalAddressSpec": {
                "subnetId": "<идентификатор_подсети>"
              }
            }
          }
          

          Где:

          • name — имя обработчика.
          • port — порт, на котором сетевой балансировщик будет принимать входящий трафик.
          • targetPort — целевой порт, на который балансировщик будет направлять трафик.
          • subnetId — идентификатор подсети в той зоне доступности, в которую вы хотите перенести балансировщик.

        Важно

        IP-адрес обработчика изменится. Укажите новый IP-адрес обработчика в настройках ресурсов, трафик с которых принимается балансировщиком.

      3. Удалите ВМ группы из старой зоны доступности:

        Консоль управления
        CLI
        Terraform
        API
        1. В консоли управления откройте каталог, в котором находится нужная группа виртуальных машин.
        2. Выберите сервис Compute Cloud.
        3. На панели слева выберите Группы виртуальных машин.
        4. Выберите группу ВМ, которую хотите изменить.
        5. В правом верхнем углу нажмите Редактировать.
        6. В блоке Распределение отключите старую зону доступности.
        7. Нажмите Сохранить.
        1. Откройте файл со спецификацией группы виртуальных машин и измените шаблон ВМ:

          • В секции allocation_policy удалите старую зону доступности.
          • В секции network_interface_specs удалите идентификатор подсети в старой зоне доступности.
        2. Измените группу ВМ:

          yc compute instance-group update \
            --id <идентификатор_группы_ВМ> \
            --file <файл_со_спецификацией_ВМ>
          

          Где:

          • --id — идентификатор группы ВМ.
          • --file — путь к файлу со спецификацией группы ВМ.

          Результат:

          id: cl15sjqilrei********
          ...
          allocation_policy:
          zones:
          - zone_id: <новая_зона_доступности>
          ...
          
        1. Откройте файл конфигурации Terraform для группы виртуальных машин и удалите в блоке allocation_policy старую зону доступности, а в блоке network_interface идентификатор подсети в старой зоне:

          ...
          network_interface {
            subnet_ids = ["<идентификатор_подсети_в_новой_зоне_доступности>"]
          }
          ...
          allocation_policy {
            zones = ["<новая_зона_доступности>"]
          }
          ...
          

          Где:

          • zones — зона доступности, в которую вы хотите переместить группу ВМ. Можно указать несколько зон.
          • subnet_ids — идентификатор подсети в той зоне доступности, в которую вы хотите перенести группу ВМ.

          Более подробную информацию о параметрах ресурсов в Terraform см. в документации провайдера.

        2. Примените изменения:

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

          2. Проверьте корректность конфигурационного файла с помощью команды:

            terraform validate
            

            Если конфигурация является корректной, появится сообщение:

            Success! The configuration is valid.
            
          3. Выполните команду:

            terraform plan
            

            В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

          4. Примените изменения конфигурации:

            terraform apply
            
          5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

          ВМ группы будут удалены в старой зоне доступности. Проверить изменения можно в консоли управления или с помощью команды CLI:

          yc compute instance-group get <имя_группы_ВМ>
          

        Воспользуйтесь методом REST API update для ресурса InstanceGroup или вызовом gRPC API InstanceGroupService/Update.

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

      5. Удалите подсеть в старой зоне доступности.

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

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