我是否有理由无法通过内部Azure AKS负载均衡器http://10.61.1.97:30446到达echoserver,而可以直接到达终结点10.61.1.14:8080或10.61.1.53:8080?
~$ kubectl get ep echoserver
NAME ENDPOINTS AGE
echoserver 10.61.1.14:8080,10.61.1.53:8080 46h
~$ kubectl get svc echoserver-lb
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
echoserver-lb LoadBalancer 192.168.172.103 10.61.1.97 8080:30446/TCP 6m30s
我的负载均衡器显然指向端点,请参见下文?
~$ kubectl describe svc echoserver-lb
...
LoadBalancer Ingress: 10.61.1.97
Port: <unset> 8080/TCP
TargetPort: 8080/TCP
NodePort: <unset> 30446/TCP
Endpoints: 10.61.1.14:8080,10.61.1.53:8080
...
答案 0 :(得分:1)
实际上,您只需要使用命令kubectl get service echoserver-lb
并获得 EXTERNAL-IP 。然后,您可以通过命令“ curl EXTERNAL-IP”从与AKS在同一虚拟网络中的Azure VM中访问服务。
对于您而言,命令应为curl 10.61.1.97:8080
。另外,您不需要自己创建内部负载均衡器,只需在应用程序的yaml文件中设置负载均衡器,然后AKS就会为您创建。您还需要注意从VM所在的子网访问应用程序的权限。
您可以遵循示例Deploying Internal Applications with private IPs on Azure Kubernetes Service (AKS)。希望对您有帮助。