zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    Eclipse关于怎么调出web project
    RMI(远程方法调用)入门
    XSS攻击
    微信小程序
    java——IO流01
    06 python下
    06python上
    05python下
    05python上
    Nginx & Apache_网站用户认证
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/11216216.html
Copyright © 2011-2022 走看看