遠程調試k8s里的java應用


在jvm參數里增加這個參數

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

  

以下為在Dockerfile里增加該jvm參數,記得要暴露調試端口,當然你也可以在k8s的deployment里增加jvm環境變量。增加jvm主要是這兩方式,任選其一。

FROM harbor.y.com/library/java:8
MAINTAINER javalittleman@gmail.com
ENV LANG C.UTF-8
ENV TZ Asia/Shanghai
WORKDIR /usr/local/app
ADD target/javalittleman-boot.jar ./app.jar
EXPOSE 8083
EXPOSE 5005
CMD java -Djava.security.egd=file:/dev/./urandom -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar app.jar

  

661283-20211212092115780-1292840141

在idea里的運行配置里增加遠程調試配置,注意Host需要填寫能直接調試的IP,這個不一定都是被調試應用的負載IP,比如:用port-forward,那這個地方填寫的是你k8s節點的IP或者域名,如果是用server的LoadBlancer來暴露的調試端口,那你這里填寫的是負載IP,還如server里如果用的NodePort的話,那你就填寫k8s節點IP,但這個時候填寫的端口並不是你應用端口,而是k8s隨機生成的端口,等等,這些都是k8s最基本的網絡概念,大家自行嘗試。


image

啟動debug后就可以歡快的調試了。

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM