openjdk k8s port-forward 连接容器jmx服务

jmx 是java 自带的,如果需要使用我们只需要添加对应的配置即可,以下演示docker 集成jmx
使用kompose 生成k8s 的部署文件,使用port-forward 进行连接,所以java.rmi.server.hostname=localhost

环境准备

参考github 项目 https://github.com/rongfengliang/openjdk-docker-jmx

  • docker-compose 文件
 
version: "3"
services: 
   app:
     build: ./
     image: dalongrong/java-jmx-openjdk
     ports: 
     - "8080:8080"
     - "30384:30384"
  • dockerfile
FROM openjdk:8u222-jdk
LABEL AUTHOR="dalongrong"
LABEL EMAIL="1141591465@qq.com"
WORKDIR /
COPY webapi-0.0.1-SNAPSHOT.jar /webapi-0.0.1-SNAPSHOT.jar
COPY docker-entrypiont.sh /docker-entrypiont.sh
RUN chmod +x /docker-entrypiont.sh
EXPOSE 30384 8080
ENTRYPOINT [ "/docker-entrypiont.sh" ]
  • docker-entrypiont.sh

    主要是进行java 启动参数的配置,com.sun.management.jmxremote.local.only=false 参数比较重要

#!/bin/sh
java \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=30384 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.rmi.port=30384 \
-Dcom.sun.management.jmxremote.local.only=false \
-Djava.rmi.server.hostname=localhost \
-jar /webapi-0.0.1-SNAPSHOT.jar
  • 生成k8s deploy 文件
kompose -f docker-compose.yaml -o k8s
  • 修改service port 为nodeport
    需要确保端口与jmx 一致,不然连接也会有问题
  • 部署
 
kubectl  apply -f ./k8s

port-forward 暴露

kubectl port-forward pod/jmx-demo-142211177-xz2rt 30384:30384

连接服务

  • 启动jconsole
    jconsole
  • 连接

 

  • 效果

 

说明

以上是一个简单的jmx k8s 运行,实际上我们也可以通过prometheus 的jmx expoter 进行监控也是不错的

参考资料

https://www.jankacik.com/Blog/monitoring-java-application-on-docker-with-jmx/ 
https://github.com/rongfengliang/openjdk-docker-jmx 
https://www.jamasoftware.com/blog/monitoring-java-applications/

posted on   荣锋亮  阅读(1372)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2018-07-19 Cockpit 容器&&kubernetes 管理可视化工具
2017-07-19 maven-assembly-plugin 打包简单案例
2015-07-19 jQuery全屏滚动插件fullPage.js

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示