具有公共 IP 的 Azure 负载均衡器将流量转发到容器应用程序

问题描述 投票:0回答:1

我们使用 terraform 部署了 azurerm_container_app_environment 和 azurerm_container_app。

resource "azurerm_container_app_environment" "myenv" {
    name                     = var.managed_environment_name
    location                 ...
    ...
    infrastructure_subnet_id       = var.infrastructure_subnet_id
    internal_load_balancer_enabled = true
    ...
    workload_profile { 
      name                  = "Consumption"
      workload_profile_type = "Consumption"
      ...
   }
}

resource "azurerm_container_app" "myapp" {
    name           = "myapp"
    revision_mode  = "Single"
    ...    
    ingress {
      external_enabled           = true
      target_port                = 80
      exposed_port               = 8000
      transport                  = "tcp"    
   }
   ....
}

我可以使用分配给环境的私有 IP 来卷曲我的容器应用程序,不会出现任何问题:

curl -kvvv http://XXX.XXX.XXX:8000

我们还有 azurerm_public_ip 和 azurerm_lb

现在我们想将容器应用程序的流量公开到公共IP

所以我们这样配置LB

 resource "azurerm_lb_probe" "probe" {
      loadbalancer_id = var.load_balancer_id
      name            = "probe"
      port            = 8000
      protocol        = "Tcp" 
      ....
}

resource "azurerm_lb_backend_address_pool" "pool" {
     loadbalancer_id = var.load_balancer_id
     name            = "BackEndAddressPool"
}

resource "azurerm_lb_backend_address_pool_address" "address_pool" {
     name                    = "address_pool"
     backend_address_pool_id = azurerm_lb_backend_address_pool.pool.id
     virtual_network_id      = var.vnet_id
     ip_address              = azurerm_container_app_environment.myapp.static_ip_address

}

resource "azurerm_lb_rule" "lb_rule" {
      loadbalancer_id     = var.load_balancer_id
      name                = "lb-rule"
      protocol            = "Tcp"
      frontend_port       = 80
      backend_port        = 8000
      backend_address_pool_ids = [azurerm_lb_backend_address_pool.pool.id]
      probe_id                 = azurerm_lb_probe.probe.id
     ....

}

问题是它显然不起作用。 Lb 指标“运行状况探测状态”始终为 0

azure azure-load-balancer azure-container-apps
1个回答
0
投票

Azure 负载均衡器仅适用于后端虚拟机

© www.soinside.com 2019 - 2024. All rights reserved.