Невозможно достичь внутренней конечной точки при использовании tcp-сервисов - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть проблема, из-за которой блокируется несколько дней. Перепробовал много вещей, но ничего не помогло.

У меня есть кластер k8s, в котором у меня есть устройство, работающее с кордой (https://docs.corda.net/docker-image.html). Этот модуль предоставляет конечную точку RP C (10201), конечную точку, к которой я хочу получить доступ за пределами кластера (моего ноутбука) с помощью инструмента corda-shell.

Итак, я создал вход (используя ingress- nginx) и добавил карту конфигурации, которая выглядит следующим образом:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-tcp-services
  namespace: {{ .Release.Namespace }}
data:
  10201: {{ .Release.Namespace }}/{{ .Release.Name }}-corda-node:10201

service.yaml для модуля corda выглядит так:

apiVersion: v1
kind: Service
metadata:
  name: {{ include "corda-node.fullname" . }}
  labels:
{{ include "corda-node.labels" . | indent 4 }}
spec:
  type: ClusterIP
  ports:
    - port: 80
      targetPort: http
      protocol: TCP
      name: http
    - port: 10200
      targetPort: p2p
      protocol: TCP
      name: p2p
    - port: 10201
      targetPort: rpc
      protocol: TCP
      name: rpc
    - port: 10202
      targetPort: rpcadmin
      protocol: TCP
      name: rpcadmin
  selector:
    app.kubernetes.io/name: {{ include "corda-node.name" . }}
    app.kubernetes.io/instance: {{ .Release.Name }}

Но пока Что бы я ни пытался, я не смог подключиться к нему извне. Из другого модуля / контейнера в кластере он работает нормально, так же, как и при перенаправлении портов на локальный компьютер.

Примечание. Я могу подключаться к другим службам в моем кластере извне. На самом деле у этого модуля есть коляска, которая предоставляет API на 8080, и я могу получить к нему доступ.

Я вижу, что порт '10201' открывается при входе, поэтому я полагаю, что он перенес мои tcp-сервисы в учетная запись, но, кажется, не может переслать запрос в модуль корда.

Если я попытаюсь сделать telnet public-ip-of-the-cluter 10201, у меня просто есть тайм-аут. То же самое при запуске инструмента corda-shell ...

Насколько я могу судить, я не вижу соответствующих журналов в модуле входного контроллера.

Я создал маленькое репозиторий github. с различными командами 'kubectl description xxx', чтобы дать вам обзор того, что я сделал.

Если вам нужна дополнительная информация, просто спросите меня. Я действительно борюсь с этим, скорее всего, я делаю что-то глупое ...

Спасибо!

РЕДАКТИРОВАТЬ:

Я помещаю журналы входа - - -v = 3, я вижу это при запуске:

I0215 09: 30: 32.081819 6 контроллер. go: 333] Поиск конечных точек с номером порта TCP 10201 для службы "salmon-locust / salmon-locust-corda-node-corda-node "
│ │ I0215 09: 30: 32.081836 6 конечных точек. go: 74] Получение конечных точек для службы" salmon-locust / salmon-locust-corda-node- Corda-узел "и port & ServicePort {Имя: rp c, Протокол: TCP, Порт: 10201, TargetPort: {1 0 rpc}, NodePort: 0,} │ │ I0215 09: 30: 32.081849 6 конечных точек. go : 117] Найдены конечные точки для службы "salmon-locust / salmon-locust-corda-node-corda-node": [{10.96.1.13 10201 & ObjectReference {Kind: Pod, Пространство имен: salmon-locust, Имя: salmon-locust-corda -node-corda- │

Но нет никакой активности, когда я пытаюсь подключиться к нему через оболочку corda-tools-shell.

РЕДАКТИРОВАТЬ 2:

Мы обнаружил, в чем проблема, вход -> dns разрешен прокси-серверу cloudflare, который не обрабатывает порт 1xxxx ...

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Мы нашли, в чем проблема, вход -> dns разрешен прокси-серверу cloudflare, который не обрабатывал порт 1xxxx ...

0 голосов
/ 15 февраля 2020

Есть ли входящий запрос во входных журналах? Ingress может выглядеть заголовок http, который может работать неправильно Corda RP C

...