JMX другой порт вперёд от kubernetes pod - PullRequest
0 голосов
/ 24 октября 2018

У меня проблема с пересылкой jmx из модуля kubernetes на локальный хост.Все работает нормально, когда порт перенаправляется на один и тот же порт:

kubectl port-forward ... 9010:9010 OR
kubectl port-forward ... 9010

Однако, когда я пытаюсь перенаправить на другой локальный порт,

kubectl port-forward ... 9011:9010

ни jconsole, ни jms не могут подключиться.

Он не позволяет мне профилировать несколько приложений одновременно.

Ошибка JMS:

com.oracle.jmc.rjmx.ConnectionException caused by java.rmi.NoSuchObjectException: no such object in table
    at com.oracle.jmc.rjmx.internal.RJMXConnection.connect(RJMXConnection.java:406)
    at com.oracle.jmc.rjmx.internal.ServerHandle.doConnect(ServerHandle.java:88)
    at com.oracle.jmc.rjmx.internal.ServerHandle.connect(ServerHandle.java:78)
    at com.oracle.jmc.console.ui.editor.internal.ConsoleEditor$ConnectJob.run(ConsoleEditor.java:73)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: java.rmi.NoSuchObjectException: no such object in table
    at java.rmi/sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:283)
    at java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:260)
    at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)
    at java.management.rmi/javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source)
    at java.management.rmi/javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2105)
    at java.management.rmi/javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:321)
    at com.oracle.jmc.rjmx.internal.RJMXConnection.connectJmxConnector(RJMXConnection.java:451)
    at com.oracle.jmc.rjmx.internal.RJMXConnection.establishConnection(RJMXConnection.java:427)
    at com.oracle.jmc.rjmx.internal.RJMXConnection.connect(RJMXConnection.java:399)
    ... 4 more

Ошибка jconsole:

Connection to localhost:9011 did no succeed.

1 Ответ

0 голосов
/ 25 октября 2018

Это проблема RMI.Проблема заключается в том, что заглушка RMI, поставляемая клиенту JMX, создана для 9010, и поэтому она завершается неудачно при попытке соединения на 9011. Здесь есть пара достойных решений, обозначенных здесь .Другой вариант - переключиться на JMXMP , который является чистым протоколом JMX для сокетов, поэтому переадресация портов работает без каких-либо дополнительных обходных путей.

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