2

我正在使用 AKS 针对外部应用程序并行执行多个负载测试代理。代理是没有与之关联的服务的 pod。集群没有 Ingress 控制器。

我希望从多个 IP 访问目标应用程序,因此我使用 Terraform 以这种方式创建了 AKS 集群:

resource "azurerm_kubernetes_cluster" "cluster" {
  ...
  ...
  ...
  network_plugin = "azure"
  network_profile {
    load_balancer_profile {
      managed_outbound_ip_count = 3
    }
  }
}

使用该配置,我确实有 3 个与集群出站负载均衡器关联的公共 IP,但目标应用程序访问日志中只出现一个公共 IP。

有没有办法强制使用所有可用的出口公共 IP?

4

1 回答 1

1

如果您没有部署服务,那么您将 LB 用作 Kubernetes LoadBalancer,而只是用作 SNAT 代理。
可能在这种情况下,LB 默认使用其主 ip 进行 SNAT 规则。

AKS 文档在谈论出站池功能时明确提到了服务。

部署公共服务<...>。Azure 负载均衡器将配置一个新的公共 IP,该 IP 将位于此新服务的前面。由于 Azure 负载均衡器可以有多个前端 IP,因此部署的每个新服务都将获得一个新的专用前端 IP,以进行唯一访问。
https://docs.microsoft.com/en-us/azure/aks/load-balancer-standard#use-the-public-standard-load-balancer

尝试按照文档中的建议创建服务(每个外部 ip 一个)。

于 2020-11-23T20:21:16.097 回答