Binding a Virtual IP Address
Application Scenario
Virtual IP addresses are used for high availability (HA) as they make active/standby ECS switchover possible. If the active ECS becomes faulty and cannot provide services, the virtual IP address is dynamically re-assigned to the standby ECS so services can continue uninterrupted.
Related Resources
Procedure
- Configure the network.
Create the main.tf file, enter the following information, and save the file:
resource "huaweicloud_vpc" "vpc_1" { name = var.vpc_name cidr = var.vpc_cidr } resource "huaweicloud_vpc_subnet" "subnet_1" { vpc_id = huaweicloud_vpc.vpc_1.id name = var.subnet_name cidr = var.subnet_cidr gateway_ip = var.subnet_gateway primary_dns = var.primary_dns }
- Create two ECSs.
Add the following information to the main.tf file:
data "huaweicloud_availability_zones" "myaz" {} data "huaweicloud_compute_flavors" "myflavor" { availability_zone = data.huaweicloud_availability_zones.myaz.names[0] performance_type = "normal" cpu_core_count = 2 memory_size = 4 } data "huaweicloud_images_image" "myimage" { name = "Ubuntu 18.04 server 64bit" most_recent = true } data "huaweicloud_networking_secgroup" "mysecgroup" { name = "default" } resource "huaweicloud_compute_instance" "mycompute" { name = "mycompute_${count.index}" image_id = data.huaweicloud_images_image.myimage.id flavor_id = data.huaweicloud_compute_flavors.myflavor.ids[0] availability_zone = data.huaweicloud_availability_zones.myaz.names[0] security_group_ids = [data.huaweicloud_networking_secgroup.mysecgroup.id] network { uuid = huaweicloud_vpc_subnet.subnet_1.id } count = 2 }
- Apply for a virtual IP address and bind it to the ECS ports.
Add the following information to the main.tf file:
resource "huaweicloud_networking_vip" "vip_1" { network_id = huaweicloud_vpc_subnet.subnet_1.id } # associate ports to the vip resource "huaweicloud_networking_vip_associate" "vip_associated" { vip_id = huaweicloud_networking_vip.vip_1.id port_ids = [ huaweicloud_compute_instance.mycompute[0].network.0.port, huaweicloud_compute_instance.mycompute[1].network.0.port ] }
- Configure variables.
Create the variables.tf file, enter the following information, and save the file. You can change the variable values based on your needs.
variable "vpc_name" { default = "vpc-basic" } variable "vpc_cidr" { default = "172.16.0.0/16" } variable "subnet_name" { default = "subent-basic" } variable "subnet_cidr" { default = "172.16.10.0/24" } variable "subnet_gateway" { default = "172.16.10.1" } variable "primary_dns" { default = "100.125.1.250" }
- Create resources.
- Run terraform init to initialize the environment.
- Run terraform plan to view resources.
- After you confirm that the resource information is correct, run terraform apply to start resource creation.
- Run terraform show to view the created resources.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot