[英]Unexpected Public IP used for egress from 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 之一。
ingress
IP 和egress
IP 之间存在差异。
Egress ,来自文档:
来自 AKS 群集的出站流量遵循 Azure 负载均衡器约定。 在创建第一个 LoadBalancer 类型的 Kubernetes 服务之前,AKS 群集中的代理节点不属于任何 Azure 负载平衡器池。 在此配置中,节点没有实例级别的公共 IP 地址。 Azure 将出站流转换为不可配置或不可确定的公共源 IP 地址。
话虽如此,从curl -s checkip.dyndns.org
返回的 IP 是出口 IP。 这是 aks 集群的出站公共 IP。
入口,来自文档:
入口 controller 是一款为 Kubernetes 服务提供反向代理、可配置流量路由和 TLS 终止的软件。 Kubernetes 入口资源用于配置各个 Kubernetes 服务的入口规则和路由。 使用入口 controller 和入口规则,单个 IP 地址可用于将流量路由到 Kubernetes 集群中的多个服务。
入口 IP - 在您的情况下,负载均衡器是公共\内部 IP,它负责反向代理和可配置的流量路由。
图表:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.