Kubernetes выставил pod соединение отказался - один раз работает, иногда нет - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть установка kubernetes с мастером и 1 узлом.

Это настроено, и все работает очень хорошо.

$ kubectl get pods

NAME          READY     STATUS    RESTARTS   AGE 
mantis-gfs    1/1       Running   1          22h 
mongodb-gfs   1/1       Running   0          14h

Я выставил pod mongodb-gfs:

$ kubectl expose pod mongodb-gfs --port=27017 --external-ip=10.9.8.100 --name=mongodb --labels="env=development"

Внешний IP-адрес 10.9.8.100 - это IP-адрес главного узла kubernetes

Служба успешно создана.

$ kubectl get services

NAME                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)     AGE
glusterfs-cluster   ClusterIP   10.111.96.254   <none>        1/TCP       23d
kubernetes          ClusterIP   10.96.0.1       <none>        443/TCP     29d
mongodb             ClusterIP   10.100.149.90   10.9.8.100    27017/TCP   1m

Теперь я могу получить доступ к монго, используя:

mongo 10.9.8.100:27017 

А вот и проблема. Это работает некоторое время, но некоторое время нет. Я подключаюсь один раз и получаю оболочку, я подключаюсь второй раз и получаю:

$ mongo 10.9.8.100:27017

MongoDB shell version v3.4.17
connecting to: mongodb://10.9.8.100:27017/test
2018-11-01T09:27:23.524+0100 W NETWORK  [thread1] Failed to connect to 10.9.8.100:27017, in(checking socket for error after poll), reason: Connection refused
2018-11-01T09:27:23.524+0100 E QUERY    [thread1] Error: couldn't connect to server 10.9.8.100:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:240:13
@(connect):1:6
exception: connect failed

Затем я пытаюсь снова, и это работает, попробуйте снова, это работает, попробуйте снова, это не работает ...

Любые подсказки, что может вызвать проблему?

1 Ответ

0 голосов
/ 01 ноября 2018

Я нашел проблему и решение. Проблема была в определении стручка. Для обоих модулей: mongodb-gfs и mantis-gfs у меня одинаковые настройки меток. Тогда я выставил сервисы с той же меткой = "env = development". В этом случае трафик, который я ожидал всегда направлять на один модуль, был «сбалансирован» по отношению к одному или другому модулю (они имеют одинаковую метку) разных типов.

Изменение метки в определении модуля mongodb-gfs решило проблему с подключением.

...