从AKS流出的意外公共IP

时间:2020-07-08 20:53:29

标签: azure kubernetes azure-aks

我有2个在AKS 1.15.9中运行的LoadBalancer类型的Kubernetes服务

$ kubectl get svc --all-namespaces | grep Load
istio-system   istio-egressgateway       LoadBalancer   10.0.177.123   51.A.XXXXX
istio-system   istio-ingressgateway      LoadBalancer   10.0.198.456   20.B.XXXXX

但是,当我运行Pod检查出口IP时,它正在使用51.C.XXXX

curl -s checkip.dyndns.org
the AKS egress IP address is shown in the response is 51.C.XXXX

我希望AKS使用K8s服务中的其中一个LoadBalancer IP。

1 个答案:

答案 0 :(得分:1)

ingress IP和egress IP之间是不同的。

出口,来自docs

来自AKS群集的出站流量遵循Azure负载均衡器 约定。在第一个类型为LoadBalancer的Kubernetes服务之前 创建后,AKS集群中的代理节点不属于任何 Azure负载平衡器池。在此配置中,节点没有 实例级别公用IP地址。 Azure转换出站流 到不可配置的公共源IP地址或 确定性的。

话虽如此,从curl -s checkip.dyndns.org返回的IP是出口IP。这是aks群集的出站公共IP。

入口,来自docs

入口控制器是一款提供反向功能的软件 代理,可配置的流量路由和TLS终止 Kubernetes服务。 Kubernetes入口资源用于 为单个Kubernetes配置入口规则和路由 服务。使用入口控制器和入口规则,单个IP 该地址可用于将流量路由到一个 Kubernetes集群。

入口IP-在您的情况下,负载均衡器是公用\内部IP,负责反向代理和可配置的流量路由。

图:

enter image description here