Переместить ВМ в целевую группу в новой зоне доступности
Примечание
Зона доступности ru-central1-c
поэтапно выводится из эксплуатации. Подробнее о планах по развитию зон доступности и возможностях миграции см. пост в блоге Yandex Cloud.
Чтобы перенести виртуальные машины за сетевым балансировщиком в целевую группу в другой зоне доступности:
-
Перенесите виртуальные машины в новую зону доступности.
-
Замените целевые ресурсы в целевой группе:
Консоль управленияCLITerraformAPI- В консоли управления
выберите каталог, в котором находится сетевой балансировщик. - В списке сервисов выберите Network Load Balancer.
- На панели слева выберите
Целевые группы. - Выберите нужную целевую группу.
- В блоке Целевые ресурсы удалите старые виртуальные машины и добавьте новые.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра
--folder-name
или--folder-id
.-
Посмотрите описание команды CLI для удаления ресурсов из целевой группы:
yc load-balancer target-group remove-targets --help
-
Получите список целевых групп Network Load Balancer в каталоге по умолчанию.
-
Получите список целевых ресурсов, привязанных к целевой группе.
-
Удалите старые виртуальные машины из целевой группы:
yc load-balancer target-group remove-targets <идентификатор_целевой_группы> \ --target subnet-id=<идентификатор_подсети_ВМ_1>,address=<внутренний_IP-адрес_ВМ_1> \ --target subnet-id=<идентификатор_подсети_ВМ_2>,address=<внутренний_IP-адрес_ВМ_2> \ ... --target subnet-id=<идентификатор_подсети_ВМ_n>,address=<внутренний_IP-адрес_ВМ_n>
Где:
<идентификатор_целевой_группы>
— идентификатор целевой группы, из которой требуется удалить целевые ресурсы.--target
— параметры ресурса в целевой группе:subnet-id
— идентификатор подсети удаляемого целевого ресурса.address
— внутренний IP-адрес удаляемого целевого ресурса.
Результат:
done (4s) id: enplckhtn77s******** folder_id: b1gt6g8ht345******** created_at: "2023-10-16T10:42:18Z" name: sample-tg region_id: ru-central1 targets:
-
Посмотрите описание команды CLI для подключения ресурсов к целевой группе:
yc load-balancer target-group add-targets --help
-
Получите список подсетей в каталоге по умолчанию:
yc vpc subnet list
Результат:
+----------------------+------------+----------------------+----------------+---------------+------------------+ | ID | NAME | NETWORK ID | ROUTE TABLE ID | ZONE | RANGE | +----------------------+------------+----------------------+----------------+---------------+------------------+ | b0cnd1srghnm******** | rucentrald | enpv51f8lple******** | | ru-central1-d | [192.168.3.0/24] | | e2li9tcgi7ii******** | rucentralb | enpv51f8lple******** | | ru-central1-b | [192.168.0.0/24] | | e9b4a9ksc88k******** | rucentrala | enpv51f8lple******** | | ru-central1-a | [192.168.1.0/24] | +----------------------+------------+----------------------+----------------+---------------+------------------+
-
Получите список ВМ в каталоге по умолчанию:
yc compute instance list
Результат:
+----------------------+------------+-------------------+---------+-----------------+--------------+ | ID | NAME | ZONE ID | STATUS | EXTERNAL IP | INTERNAL IP | +----------------------+------------+-------------------+---------+-----------------+--------------+ | fhmkchjddi40******** | sample-vm1 | ru-central1-a | RUNNING | 130.193.**.*** | 192.168.1.9 | | fhm13ts43oml******** | sample-vm2 | ru-central1-a | RUNNING | 158.160.***.*** | 192.168.1.32 | | epdsj30mndgj******** | sample-vm3 | ru-central1-b | RUNNING | 51.250.***.*** | 192.168.0.7 | +----------------------+------------+-------------------+---------+-----------------+--------------+
-
Подключите ресурсы к целевой группе:
yc load-balancer target-group add-targets <идентификатор_целевой_группы> \ --target subnet-id=<идентификатор_подсети_ВМ_1>,address=<внутренний_IP-адрес_ВМ_1> \ --target subnet-id=<идентификатор_подсети_ВМ_2>,address=<внутренний_IP-адрес_ВМ_2> ... --target subnet-id=<идентификатор_подсети_ВМ_n>,address=<внутренний_IP-адрес_ВМ_n>
Где:
<идентификатор_целевой_группы>
— идентификатор целевой группы, в которую требуется добавить целевые ресурсы.--target
— параметры ресурса в целевой группе:subnet-id
— идентификатор подсети добавляемого целевого ресурса.address
— внутренний IP-адрес добавляемого целевого ресурса.
Результат:
done (4s) id: enplckhtn77s******** folder_id: b1gt6g8ht345******** ... address: 192.168.1.32 - subnet_id: e9b4a9ksc88k******** address: 192.168.1.9
Terraform
позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ей с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). Terraform и его провайдеры распространяются под лицензией Business Source License .Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
или в зеркале .При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте фрагмент с описанием целевой группы в конфигурационном файле Terraform и отредактируйте поля
subnet_id
иaddress
в блокеtarget
:Пример описания целевой группыresource "yandex_lb_target_group" "foo" { name = "<имя_целевой_группы>" target { subnet_id = "<идентификатор_подсети>" address = "<внутренний_IP-адрес_ресурса_1>" } target { subnet_id = "<идентификатор_подсети>" address = "<внутренний_IP-адрес_ресурса_2>" } }
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
Проверить изменения можно в консоли управления
или с помощью команды CLI:yc load-balancer target-group get <имя_целевой_группы>
- Чтобы отключить ресурсы от целевой группы, воспользуйтесь методом REST API removeTargets для ресурса TargetGroup или вызовом gRPC API TargetGroupService/RemoveTargets.
- Чтобы подключить ресурсы к целевой группе, воспользуйтесь методом REST API addTargets для ресурса TargetGroup или вызовом gRPC API TargetGroupService/AddTargets.
- В консоли управления
-
Если у вас внутренний сетевой балансировщик, и вам необходимо перенести его в подсеть, соответствующую новой зоне доступности виртуальных машин:
- Удалите существующий обработчик трафика балансировщика.
- Добавьте новый обработчик трафика для новой зоны доступности.
IP-адрес сетевого балансировщика изменится.
-
Убедитесь, что ресурсы целевой группы в новой зоне доступности прошли проверку состояния и перешли в статус
HEALTHY
.Если новые виртуальные машины в течение длительного времени остаются в статусе
UNHEALTHY
, убедитесь, что к ВМ привязаны группы безопасности, разрешающие трафик проверок состояния.