多个应用程序节点如何在kubernetes中公开jmx?

多个应用程序节点如何在kubernetes中公开jmx?,第1张

多个应用程序节点如何在kubernetes中公开jmx?

另一个选择是使用 kubectl port-forward 将JMX端口从K8 pod转发到本地PC 。

我这样做是这样的:

1)。将以下JVM选项添加到您的应用程序:

-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

这里的关键部分是:

  • 相同的端口应用作“ jmxremote.port”和“ jmxremote.rmi.port”。只需要转发一个端口。

  • 127.0.0.1应该作为rmi服务器主机名传递。JMX连接需要通过端口转发才能工作。

2)。通过kubectl将JMX端口(1099)转发到本地PC:

kubectl port-forward <your-app-pod> 1099

3)。打开jconsole连接到本地端口1099:

jconsole 127.0.0.1:1099

这种方式使得可以通过JMX调试任何Java Pod,而不必通过K8服务公开公开JMX(从安全性角度来看更好)。

另一个可能有用的选项是将Jolokia(https://jolokia.org/)代理附加到容器内的Java进程,以便它通过HTTP端口代理JMX并公开或端口转发此HTTP端口以查询JMX。通过HTTP。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4956727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存