Разрешить и запретить отключение зоны доступности
Когда в одной из зон доступности проводится обслуживание или наблюдаются неполадки, специалисты Yandex Cloud могут временно отключить эту зону. В этом случае балансировщик автоматически распределит трафик между оставшимися зонами. После восстановления зоны она подключается, и трафик снова распределяется равномерно.
Вы можете разрешить или запретить автоматическое отключение зоны доступности. При этом нельзя выбрать конкретную зону для отключения. Перед разрешением автоматического режима можно протестировать отключение разных зон доступности.
По умолчанию отключение зоны доступности не разрешено.
Разрешить отключение зоны доступности
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
При создании или изменении L7-балансировщика укажите параметр --allow-zonal-shift, например:
yc application-load-balancer load-balancer update \
<имя_или_идентификатор_балансировщика> \
--allow-zonal-shift
Результат:
id: ds70q425egoe********
name: my-balancer
...
allow_zonal_shift: true
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
В конфигурационном файле в описании ресурса
yandex_alb_load_balancerукажите параметрallow_zonal_shiftсо значениемtrue:resource "yandex_alb_load_balancer" "my-balancer" { ... allow_zonal_shift = true ... } -
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Terraform изменит все требуемые ресурсы. Проверить изменение ресурсов можно в консоли управления
.Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с балансировщиками Application Load Balancer 10 минутами.
Операции, которые длятся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию балансировщика блок
timeouts, например:resource "yandex_alb_load_balancer" "<имя_балансировщика>" { ... timeouts { create = "60m" update = "60m" delete = "60m" } } -
Более подробную информацию о параметрах ресурса yandex_alb_load_balancer см. в документации провайдера.
Чтобы разрешить перенос трафика при создании L7-балансировщика, воспользуйтесь методом REST API create для ресурса LoadBalancer и укажите "allowZonalShift": "true" или вызовом gRPC API LoadBalancerService/Create и укажите "allow_zonal_shift": "true".
Чтобы разрешить перенос трафика при изменении L7-балансировщика, воспользуйтесь методом REST API update для ресурса LoadBalancer и укажите "allowZonalShift": "true" или вызовом gRPC API LoadBalancerService/Update и укажите "allow_zonal_shift": "true".
Запретить отключение зоны доступности
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
При создании или изменении L7-балансировщика укажите параметр --allow-zonal-shift=false, например:
yc application-load-balancer load-balancer update \
<имя_или_идентификатор_балансировщика> \
--allow-zonal-shift=false
Результат:
id: ds70q425egoe********
name: my-balancer
...
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
В конфигурационном файле в описании ресурса
yandex_alb_load_balancerукажите параметрallow_zonal_shiftсо значениемfalse:resource "yandex_alb_load_balancer" "my-balancer" { ... allow_zonal_shift = false ... } -
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Terraform изменит все требуемые ресурсы. Проверить изменение ресурсов можно в консоли управления
.Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с балансировщиками Application Load Balancer 10 минутами.
Операции, которые длятся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию балансировщика блок
timeouts, например:resource "yandex_alb_load_balancer" "<имя_балансировщика>" { ... timeouts { create = "60m" update = "60m" delete = "60m" } } -
Более подробную информацию о параметрах ресурса yandex_alb_load_balancer см. в документации провайдера.
Чтобы запретить перенос трафика при создании L7-балансировщика, воспользуйтесь методом REST API create для ресурса LoadBalancer и укажите "allowZonalShift": "false" или вызовом gRPC API LoadBalancerService/Create и укажите "allow_zonal_shift": "false".
Чтобы запретить перенос трафика при изменении L7-балансировщика, воспользуйтесь методом REST API update для ресурса LoadBalancer и укажите "allowZonalShift": "false" или вызовом gRPC API LoadBalancerService/Update и укажите "allow_zonal_shift": "false".