kubernetes - 创建了多个出口公共 IP,但只使用了一个
问题描述
我正在使用 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?
解决方案
如果您没有部署服务,那么您将 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 一个)。
推荐阅读
- reactjs - 在不使用箭头函数的情况下将参数传递给 prop 函数
- javascript - 不能在 DrawerNavigator 中嵌套 bottomTabNavigator
- javascript - 使用 JavaScript 和自定义变量动态更改按钮的 CSS
- python - 带有复数键的 defaultdict(list) python
- c++ - 由于分段错误,程序执行停止:11
- python - 如何更改矩阵的符号?
- java - 使用 Arraylist 对 Intent 的空对象引用
- python - 我可以将测试数据注入 EC2 API 调用吗
- json - 通过部分 json 更新 REST API
- python - 在 Python 中将 Wikipedia 表刮到 CSV