Как открыть Openshift - порт 9111 (приложение grp c) - PullRequest
0 голосов
/ 21 марта 2020

У меня есть приложение grp c (клиент и сервер), которое нормально работает на локальном хосте, но у меня проблема в MiniShift. Каждое приложение работает в разных модулях. Проблема заключается в том, что клиент не может подключиться к серверу:

java.net.ConnectException: finishConnect(..) failed: Connection refused
at io.grpc.netty.shaded.io.netty.channel.unix.Errors.throwConnectException(Errors.java:124) ~[grpc-netty-shaded-1.28.0.jar!/:1.28.0]
at io.grpc.netty.shaded.io.netty.channel.unix.Socket.finishConnect(Socket.java:243) ~[grpc-netty-shaded-1.28.0.jar!/:1.28.0]
at io.grpc.netty.shaded.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.doFinishConnect(AbstractEpollChannel.java:672) ~[grpc-netty-shaded-1.28.0.jar!/:1.28.0]
at io.grpc.netty.shaded.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.finishConnect(AbstractEpollChannel.java:649) ~[grpc-netty-shaded-1.28.0.jar!/:1.28.0]
at io.grpc.netty.shaded.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady(AbstractEpollChannel.java:529) ~[grpc-netty-shaded-1.28.0.jar!/:1.28.0]
at io.grpc.netty.shaded.io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:465) ~[grpc-netty-shaded-1.28.0.jar!/:1.28.0]
at io.grpc.netty.shaded.io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[grpc-netty-shaded-1.28.0.jar!/:1.28.0]
at io.grpc.netty.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[grpc-netty-shaded-1.28.0.jar!/:1.28.0]
at io.grpc.netty.shaded.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[grpc-netty-shaded-1.28.0.jar!/:1.28.0]
at io.grpc.netty.shaded.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[grpc-netty-shaded-1.28.0.jar!/:1.28.0]

при java .lang.Thread.run (Thread. java: 748) [na: 1.8.0_242]

Я пробовал соединение между модулями, но открыты только порты 80 и 443. Остальные порты возвращают Соединение отказано.

Как открыть порт 9111 (где работает мое приложение grp c java)? Спасибо

1 Ответ

1 голос
/ 23 марта 2020

Мне нужно будет создать службу с типом NodePort .

NodePorts - это тип служб, которые открывают порт на каждом компьютере кластера и могут перенаправлять трафик. c - TCP / UDP - для ваших приложений. Для этого вам понадобятся права администратора с использованием system: admin или предоставленные пользователю по вашему выбору ... например:

oc adm policy add-cluster-role-to-user cluster-admin matko

К сожалению, Openshift базируется в Kubernetes, а Kubernetes по умолчанию разрешает только портам узлов находиться в диапазоне 30000-32767 .

Ваша заявка будет все еще слышать в 9111, но достигать извне кластер, у нас были только порты, которые я написал выше.

Найдите службу приложения и отредактируйте:

oc edit svc mysql

Затем измените Тип на NodePort и выберите порт - или получите случайный:

apiVersion: v1
kind: Service
metadata:
  name: mysql
  labels:
    name: mysql
spec:
  type: NodePort
  ports:
    - port: 3036
      nodePort: 30036
      name: http
  selector:
    name: mysql

Это только для объяснения, никогда не выставляйте базу данных на inte rnet.

...