在采用OpenJDK OpenJ9的Kubernetes上拒绝JMX连接

在采用OpenJDK OpenJ9的Kubernetes上拒绝JMX连接,kubernetes,adoptopenjdk,openj9,Kubernetes,Adoptopenjdk,Openj9,与我的团队一起,我们正试图将我们的微服务转移到openj9,它们在kubernetes上运行。然而,我们在JMX的配置上遇到了一个问题。openjdk8-openj9 当我们尝试与jvisualvm建立连接并与Kubernetes进行端口转发时,连接被拒绝。 除了从Hotspot切换到OpenJ9之外,我们没有改变配置 错误: E0312 17:09:46.286374 17160 portforward.go:400] an error occurred forwarding 1099 -

与我的团队一起,我们正试图将我们的微服务转移到openj9,它们在kubernetes上运行。然而,我们在JMX的配置上遇到了一个问题。openjdk8-openj9 当我们尝试与jvisualvm建立连接并与Kubernetes进行端口转发时,连接被拒绝。 除了从Hotspot切换到OpenJ9之外,我们没有改变配置

错误:

E0312 17:09:46.286374   17160 portforward.go:400] an error occurred forwarding 1099 -> 1099: error forwarding port 1099 to pod XXXXXXX, uid : exit status 1: 2020/03/12 16:09:45 socat[31284] E connect(5, AF=2 127.0.0.1:1099, 16): Connection refused
我们使用的java选项:

-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.local.only=false 
-Dcom.sun.management.jmxremote.port=1099 
-Dcom.sun.management.jmxremote.rmi.port=1099
我们使用的是最新的OpenJDK/openjdk8-openj9 docker映像。 你有什么想法吗

谢谢大家!


问候。

我设法弄明白了为什么它不起作用。 事实证明,为了将JMX选项传递给服务,我们在YAML中使用了Kubernetes服务描述符。看起来是这样的:

  - name: _JAVA_OPTIONS
        value:  -Dzipkinserver.listOfServers=http://zipkin:9411 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.rmi.port=1099
我意识到,当应用程序没有在docker容器中使用ENTRYPOINT启动时,JMX属性没有从_JAVA_选项中考虑。 因此,我像这样将属性直接传递到Dockerfile中,它可以正常工作

CMD ["java", "-Dcom.sun.management.jmxremote", "-Dcom.sun.management.jmxremote.authenticate=false", "-Dcom.sun.management.jmxremote.ssl=false", "-Dcom.sun.management.jmxremote.local.only=false", "-Dcom.sun.management.jmxremote.port=1099", "-Dcom.sun.management.jmxremote.rmi.port=1099", "-Djava.rmi.server.hostname=127.0.0.1", "-cp","app:app/lib/*","OurMainClass"]
还可以保留_JAVA_选项并在dockerfile中设置入口点


谢谢

您是如何公开您的应用程序的?这些改变是否迫使网络改变防火墙规则等?谢谢你的回答,我找到了一个解决方案!