Мы развернули azurerm_container_app_environment и azurerm_container_app с помощью terraform.
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-адрес, назначенный env:
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.
@VinayB да, я тоже пытался настроить NSG, но это не сработало
Вы используете внутренние приложения-контейнеры или внешние?
Azure Load Balancer предназначен для работы только с серверными виртуальными машинами.
Вы проверили с помощью nsg, который разрешает порт 8000? @fabry это разрешено?