【发布时间】:2021-11-07 00:16:12
【问题描述】:
我为 AKS 中的服务创建了一个负载平衡器,并且该负载平衡器已获准可从 AKS 网络子网组访问。负载均衡器具有对应于内部服务的外部 IP 地址。但是我无法访问负载均衡器提供的 IP 地址。
【问题讨论】:
标签: azure-aks
我为 AKS 中的服务创建了一个负载平衡器,并且该负载平衡器已获准可从 AKS 网络子网组访问。负载均衡器具有对应于内部服务的外部 IP 地址。但是我无法访问负载均衡器提供的 IP 地址。
【问题讨论】:
标签: azure-aks
请在 AKS 群集上执行 kubectl get service -n <namespace>:
如果您看到如下内容,其中 External-IP 是公共 IP 地址:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-service LoadBalancer 10.0.192.89 20.69.145.115 80:31541/TCP 6s
然后,该服务从 AKS 公共负载均衡器的前端 IP 地址中分配了一个公共 IP 地址。请确保与 AKS 群集子网或节点虚拟机的网络接口关联的所有 Network Security Groups 有效允许 来自 Internet 或的入站流量您尝试连接的公共 IP 地址(范围)。还请确保没有防火墙、网络虚拟设备等阻止到 AKS 群集子网和节点虚拟机的入站流量。
如果您看到如下内容,其中 External-IP 是私有 IP 地址:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-service LoadBalancer 10.0.184.168 10.240.0.25 80:30225/TCP 4m
然后您已在 AKS 群集上创建了一个 Azure Internal Load Balancer Service,并且关联虚拟网络中的专用 IP 地址已与 服务 相关联。请确保您从 AKS 群集的虚拟网络或已连接网络(如 peered virtual networks、virtual networks connected over a VPN gateway、on-premise network connected to the Azure Virtual network)内的设备连接到服务。默认网络安全组规则允许虚拟网络和连接网络内部的连接,但如果添加自定义规则,请确保有效规则允许源与 AKS 群集子网和节点虚拟机之间的流量。
在第三种情况下,您可能会在很长一段时间内看到 External-IP <pending>,如下所示:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-service LoadBalancer 10.0.192.89 <pending> 80:31541/TCP 45m
在这种情况下,请使用kubectl describe service 描述服务。在输出的事件部分下,您可能会在EnsuringLoadBalancer 期间发现错误。请确保在服务清单中正确设置了注释,并为 AKS 群集的托管标识或服务 p 授予了正确的权限,如:
https://docs.microsoft.com/en-us/azure/aks/internal-lb 和/或
https://docs.microsoft.com/en-us/azure/aks/static-ip
【讨论】: