Отказ в соединении между модулями - PullRequest
0 голосов
/ 06 февраля 2019

Наша команда недавно начала использовать GKE, но столкнулась с периодически возникающей проблемой на некоторых наших модулях, которые обслуживают HTTP через порт 8080. Другие модули в кластере, даже на одном и том же узле, получают ответ «отказано в соединении», когдапытаясь соединиться, используя свой кластерный IP:

$ kubectl run -i --tty busybox --image=busybox --restart=Never -- sh!
/ # ping 10.28.2.141
PING 10.28.2.141 (10.28.2.141): 56 data bytes
64 bytes from 10.28.2.141: seq=0 ttl=62 time=2.212 ms
64 bytes from 10.28.2.141: seq=1 ttl=62 time=1.993 ms
64 bytes from 10.28.2.141: seq=2 ttl=62 time=4.662 ms
^C
--- 10.28.2.141 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.993/2.955/4.662 ms
/ # wget http://10.28.2.141:8080/health-check
Connecting to 10.28.2.141:8080 (10.28.2.141:8080)
wget: can't connect to remote host (10.28.2.141): Connection refused

Однако служба действительно работает и прослушивает этот порт: если я exec нахожусь на модуле и запускаю ту же команду, она работает счастливо.

Для других почти идентичных модулей это подключение работает корректно, но периодически некоторая часть (возможно, 10-20%) модулей оказывается в этом состоянии.

В журналах модуля нет ошибок.

Это недавно подготовленный кластер GKE в версии 1.11.6-gke.3 с двумя узлами, без сетевых политик и Istio не установлен.

Любые идеи о том, в чем может быть проблема,или как диагностировать дальше?Рад добавить любую другую информацию, если это будет полезно.

...