Невозможно получить доступ к модулю через IP-адрес модуля из кластера, что приводит к сбою датчика живучести / готовности - PullRequest
0 голосов
/ 27 февраля 2019

Немного предыстории: создание приложения в golang, работающего на minikube в MacOS 10.14.2

karlewr [0] $ kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.1", GitCommit:"b1b29978270dc22fecc592ac55d903350454310a", GitTreeState:"clean", BuildDate:"2018-07-18T11:37:06Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.4", GitCommit:"f49fa022dbe63faafd0da106ef7e05a29721d3f1", GitTreeState:"clean", BuildDate:"2018-12-14T06:59:37Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"linux/amd64"}

Проблема: Я не могу получить доступ к своему модулючерез IP-адрес из моего кластера.Эта проблема возникает только с этим одним модулем, что заставляет меня поверить, что у меня где-то неверная конфигурация.

Моя спецификация модулей такова:

containers:
  - name: {{ .Chart.Name }}
    image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
    ports:
      - name: http
        containerPort: 8080
        protocol: TCP
    livenessProbe:
      httpGet:
        path: /ping
        port: 8080
      initialDelaySeconds: 60
    readinessProbe:
      httpGet:
        path: /ping
        port: 8080
      initialDelaySeconds: 60

Что странно, так это то, что я могу получить к ней доступпутем переадресации порта этот модуль на порт 8080 и запуска curl localhost:8080/ping до запуска тестов живучести и готовности и после инициализации модуля.Это возвращает 200 OK.

Также в течение этого времени до CrashLoopBackoff, если я ssh в свой узел мини-куба и запускаю curl http://172.17.0.21:8080/ping, я получаю curl: (7) Failed to connect to 172.17.0.21 port 8080: Connection refused.Используемый IP-адрес - это IP-адрес моего модуля.

Но затем, когда я описываю модуль после периода initialDelaySeconds, я вижу следующее:

  Warning  Unhealthy  44s (x3 over 1m)  kubelet, minikube  Readiness probe failed: Get http://172.17.0.21:8080/ping: dial tcp 172.17.0.21:8080: connect: connection refused
  Warning  Unhealthy  44s (x3 over 1m)  kubelet, minikube  Liveness probe failed: Get http://172.17.0.21:8080/ping: dial tcp 172.17.0.21:8080: connect: connection refused

Почему моему соединению будет отказано только отIP-адрес модуля?

Редактировать Я не запускаю никаких пользовательских сетевых вещей, просто мини-куб из коробки

1 Ответ

0 голосов
/ 27 февраля 2019

Почему моему соединению отказывают только из-за IP-адреса модуля?

Поскольку ваша программа, по-видимому, только прослушивает localhost (он же 127.0.0.1 он же lo0)

Не зная больше о вашем контейнере, мы не можем дать вам дальнейшие рекомендации, но это почти наверняка проблема, основанная на вашем описании.

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