curl: (7) Не удалось подключиться к порту 1959.168.99.100 31591: соединение отклонено

Это мои стручки

hello-kubernetes-5569fb7d8f-4rkhs   0/1     ImagePullBackOff   0          5d2h
hello-minikube-5857d96c67-44kfg     1/1     Running            1          5d2h
hello-minikube2                     1/1     Running            0          3m24s
hello-minikube2-74654c8f6f-trrrw    1/1     Running            0          4m8s
hello-newkubernetes                 0/1     ImagePullBackOff   0          5d1h

Если я попробую

curl $(minikube service hello-minikube2 --url)
curl: (7) Failed to connect to 192.168.99.100 port 31591: Connection refused

Давайте проверим VBox

inet 192.168.99.1/24 brd 192.168.99.255 scope global vboxnet0
   valid_lft forever preferred_lft forever
inet6 fe80::800:27ff:fe00:0/64 scope link 
   valid_lft forever preferred_lft forever

Почему мое соединение отказано?

kubectl get svc -o wide
NAME                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE     SELECTOR
hello-kubernetes    NodePort    10.98.65.138    <none>        8080:30062/TCP   5d2h    run=hello-kubernetes
hello-minikube      NodePort    10.105.166.56   <none>        8080:30153/TCP   5d3h    run=hello-minikube
hello-minikube2     NodePort    10.96.94.39     <none>        8080:31591/TCP   42m     run=hello-minikube2
kubernetes          ClusterIP   10.96.0.1       <none>        443/TCP          5d4h    <none>
tomcat-deployment   NodePort    10.96.205.228   <none>        8080:30613/TCP   2m13s   app=tomcat

kubectl get ep -o wide
NAME                ENDPOINTS                         AGE
hello-kubernetes                                      5d14h
hello-minikube      172.17.0.7:8080                   5d14h
hello-minikube2     172.17.0.4:8080,172.17.0.5:8080   12h
kubernetes          192.168.99.100:8443               5d16h
tomcat-deployment   172.17.0.6:8080                   11h

Я хочу показать конечную точку сервиса

minikube service tomcat-deployment --url
http://192.168.99.100:30613

Почему этот URL-адрес отличается от широкого вывода?

2 ответа

Решение

По-видимому, вы пытаетесь получить доступ к своему сервису за пределами кластера, поэтому вам необходимо предоставить IP-адрес вашего сервиса для внешнего подключения.

Бежать kubectl edit svc hello-minikube2 и изменить

type: NodePort

в

type: LoadBalancer

Или же

kubectl expose deployment hello-minikube2 --type=LoadBalancer --port=8080

В облачных провайдерах, которые поддерживают балансировщики нагрузки, для доступа к Сервису будет предоставлен внешний IP-адрес. В Minikube тип LoadBalancer делает службу доступной с помощью команды службы minikube.

Запустите следующую команду:

minikube service hello-minikube2

Кажется , что вы пытаетесь получить доступ к модулю, и это должно быть сделано через службу kubernetes, а не напрямую к модулю. Вы также можете показать: kubectl get svc -o wide?

если сервис действительно существует, попробуйте использовать kubectl get ep -o wide чтобы проверить, что сервис действительно обнаружен

Другие вопросы по тегам