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