Allowing or denying zonal shift
If an availability zone is under maintenance or has technical problems, you can configure Yandex Cloud to automatically prohibit your load balancer from sending traffic to that zone. This will ensure your services stay operational. Once the zone is recovered, traffic will once again be routed to all the zones configured for the load balancer.
You can also manually enable or disable specific availability zones and test zonal shift from any of them. After the test, you can allow zonal shift only for specific load balancers.
By default, zonal shift is not allowed.
Allowing zonal shift
If you do not have the Yandex Cloud CLI yet, install and initialize it.
The folder used by default is the one specified when creating the CLI profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also specify a different folder for any command using --folder-name or --folder-id. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.
When creating or updating a network load balancer, set the --allow-zonal-shift parameter, for example:
yc load-balancer network-load-balancer update \
<load_balancer_name_or_ID> \
--allow-zonal-shift
Result:
id: ds70q425egoe********
name: my-balancer
...
allow_zonal_shift: true
With Terraform
Terraform is distributed under the Business Source License
For more information about the provider resources, see the relevant documentation on the Terraform
If you do not have Terraform yet, install it and configure the Yandex Cloud provider.
-
In the configuration file, specify the
allow_zonal_shiftparameter set totruein theyandex_lb_network_load_balancerresource description:resource "yandex_lb_network_load_balancer" "my-balancer" { ... allow_zonal_shift = true ... } -
Apply the changes:
-
In the terminal, navigate to the configuration file directory.
-
Make sure the configuration is correct using this command:
terraform validateIf the configuration is valid, you will get this message:
Success! The configuration is valid. -
Run this command:
terraform planYou will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.
-
Apply the configuration changes:
terraform apply -
Type
yesand press Enter to confirm the changes.
Terraform will update all required resources. You can check the resource update using this CLI command:
yc load-balancer network-load-balancer get \ <load_balancer_name_or_ID> -
For more information about yandex_lb_network_load_balancer properties, see the relevant provider documentation.
To allow zonal shift when creating a network load balancer, use the create REST API method for the NetworkLoadBalancer resource and set "allowZonalShift": "true", or use the NetworkLoadBalancerService/Create gRPC API call and set "allow_zonal_shift": "true".
To allow zonal shift when updating a network load balancer, use the update REST API method for the NetworkLoadBalancer resource and set "allowZonalShift": "true", or use the NetworkLoadBalancerService/Update gRPC API call and set "allow_zonal_shift": "true".
Denying zonal shift
If you do not have the Yandex Cloud CLI yet, install and initialize it.
The folder used by default is the one specified when creating the CLI profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also specify a different folder for any command using --folder-name or --folder-id. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.
When creating or updating a network load balancer, set --allow-zonal-shift=false, for example:
yc load-balancer network-load-balancer update \
<load_balancer_name_or_ID> \
--allow-zonal-shift=false
Result:
id: ds70q425egoe********
name: my-balancer
...
With Terraform
Terraform is distributed under the Business Source License
For more information about the provider resources, see the relevant documentation on the Terraform
If you do not have Terraform yet, install it and configure the Yandex Cloud provider.
-
In the configuration file, specify the
allow_zonal_shiftparameter set tofalsein theyandex_lb_network_load_balancerresource description:resource "yandex_lb_network_load_balancer" "my-balancer" { ... allow_zonal_shift = false ... } -
Apply the changes:
-
In the terminal, navigate to the configuration file directory.
-
Make sure the configuration is correct using this command:
terraform validateIf the configuration is valid, you will get this message:
Success! The configuration is valid. -
Run this command:
terraform planYou will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.
-
Apply the configuration changes:
terraform apply -
Type
yesand press Enter to confirm the changes.
Terraform will update all required resources. You can check the resource update using this CLI command:
yc load-balancer network-load-balancer get \ <load_balancer_name_or_ID> -
For more information about yandex_lb_network_load_balancer properties, see the relevant provider documentation.
To deny zonal shift when creating a network load balancer, use the create REST API method for the NetworkLoadBalancer resource and set "allowZonalShift": "false", or use the NetworkLoadBalancerService/Create gRPC API call and set "allow_zonal_shift": "false".
To deny zonal shift when updating a network load balancer, use the update REST API method for the NetworkLoadBalancer resource and set "allowZonalShift": "false", or use the NetworkLoadBalancerService/Update gRPC API call and set "allow_zonal_shift": "false".