Переместить ВМ в целевую группу в новой зоне доступности
Примечание
Зона доступности 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 автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.Terraform распространяется под лицензией Business Source License
, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0 .Подробную информацию о ресурсах провайдера смотрите в документации на сайте 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
, убедитесь, что к ВМ привязаны группы безопасности, разрешающие трафик проверок состояния.