Внутренний балансировщик нагрузки Kubernetes AKS не отвечает? - PullRequest
0 голосов
/ 23 декабря 2018

Есть ли причина, по которой я не могу получить доступ к своему эхосерверу через внутренний балансировщик нагрузки Azure AKS http://10.61.1.97:30446, и я могу напрямую перейти к конечной точке 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
...

1 Ответ

0 голосов
/ 26 декабря 2018

На самом деле, вам просто нужно использовать команду kubectl get service echoserver-lb и получить EXTERNAL-IP .Затем вы можете получить доступ к службе с виртуальной машины Azure, которая находится в той же виртуальной сети, что и AKS, с помощью команды curl EXTERNAL-IP.

В вашем случае эта команда должна быть curl 10.61.1.97:8080.Кроме того, вам не нужно создавать внутренний балансировщик нагрузки самостоятельно, просто установите балансировщик нагрузки в файле yaml для приложения, и тогда AKS создаст для вас.Вам также необходимо обратить внимание на разрешение доступа к вашему приложению из подсети, в которой находится ваша виртуальная машина.

Вы можете следовать примеру Развертывание внутренних приложений с частными IP-адресами в службе Azure Kubernetes (AKS) .Надеюсь, это поможет вам.

...