curl не может получить доступ к службам Kubernetes - ошибка: нет маршрута к хосту - PullRequest
0 голосов
/ 25 мая 2020

По какой-то причине я не могу curl мою службу или модуль, раскрывающий эту службу. Ниже приведены настройки, которые раньше работали - больше нет.

$ kubectl create deployment nginx --image=nginx
$ kubectl expose deployment nginx --port=80

$ kubectl get svc,pods -o wide
NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE    SELECTOR
service/nginx        ClusterIP   10.109.212.238   <none>        80/TCP    12m    app=nginx

NAME                            READY   STATUS    RESTARTS   AGE   IP          NODE               NOMINATED NODE   READINESS GATES
pod/nginx-866795cfb8-ff5zv      1/1     Running   0          13m   10.47.0.2   nebula-web01       <none>           <none>

Получение содержимого приложения из Service IP или Pod IP приводит к этой ошибке.

$ curl 10.109.212.238
curl: (7) Failed connect to 10.109.212.238:80; No route to host

$ curl 10.47.0.2 
curl: (7) Failed connect to 10.47.0.2:80; No route to host

1 Ответ

1 голос
/ 25 мая 2020

Как ни странно, я обнаружил, что ошибка появилась только на узле nebula-web01. Если я развернул одно и то же приложение на другом узле, например nebula-web02 и curl Service IP или Pod IP, тогда приложение вернуло его содержимое. Это заставило меня подумать, что что-то не так с настройкой nebula-web01.

Моя проблема была решена при перезапуске демонов docker и kubelet на узле nebula-web01.

$ systemctl restart docker
$ systemctl restart kubelet

Примечания

Дополнительно, вы можете отключить firewall и грипп sh iptables согласно этой инструкции .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...