#kubernetes #terraform #azure-aks #azure-public-ip
#kubernetes #terraform #azure-aks #azure-public-ip
Вопрос:
Я использую AKS для параллельного выполнения нескольких агентов нагрузочных тестов для внешнего приложения. Агенты представляют собой модули без связанных с ними служб. У кластера нет контроллера входа.
Я хочу, чтобы целевое приложение попадало с нескольких IP-адресов, поэтому я создал кластер AKS с помощью Terraform таким образом:
resource "azurerm_kubernetes_cluster" "cluster" {
...
...
...
network_plugin = "azure"
network_profile {
load_balancer_profile {
managed_outbound_ip_count = 3
}
}
}
При такой конфигурации у меня действительно есть 3 общедоступных IP-адреса, связанных с кластерным балансировщиком исходящей нагрузки, но в журналах доступа к целевому приложению отображается только один общедоступный IP-адрес.
Есть ли способ принудительно использовать все доступные общедоступные IP-адреса?
Ответ №1:
Если у вас не развернуты службы, то вы используете свой LB не как балансировщик нагрузки Kubernetes, а просто как SNAT-прокси.
Вероятно, в этом случае LB по умолчанию использует свой основной IP-адрес для правил SNAT.
В документах AKS четко упоминаются службы, когда речь идет о возможностях исходящего пула.
Разверните общедоступную службу <…>. Для балансировщика нагрузки Azure будет настроен новый общедоступный IP-адрес, который будет использоваться для этой новой службы. Поскольку средство балансировки нагрузки Azure может иметь несколько интерфейсных IP-адресов, каждая новая развернутая служба получит новый выделенный интерфейсный IP-адрес для уникального доступа.
https://learn.microsoft.com/en-us/azure/aks/load-balancer-standard#use-the-public-standard-load-balancer
Попробуйте создать службы (по одной на внешний ip), как указано в документе.
Комментарии:
1. Вы правы. Похоже, что этот параметр
managed_outbound_ip_count
не помогает моему варианту использования. Спасибо