IDEA工具远程DEBUG调试K8S环境中的容器应用(Java应用)

这篇具有很好参考价值的文章主要介绍了IDEA工具远程DEBUG调试K8S环境中的容器应用(Java应用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

应用场景:

IDEA远程调试kubernetes环境中的容器应用(Java应用)应用场景:Java开发的项目在本地运行正常,然后将容器运行方式的项目发布到远端服务器上线运行后,出现了异常情况,此时频繁去修改代码发布镜像进行问题验证,将耗费较大的时间成本。

为了提高问题定位和代码调试效率,使用端口代理的方式,将远端容器应用的端口映射出来,使用远端代码调试方式进行debug代码。


1. 修改服务部署的deployment.yaml文件

修改指定服务的deployment.yaml文件,为容器添加远程调试的 JVM配置参数:

env:
- name: JAVA_TOOL_OPTIONS
  value: -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

2. 暴露调试端口的两种方式

2.1 使用命令行方式暴露调试端口

启动容器后,会自动开启一个监听 5005 端口的调试服务,可以使用远程调试工具(如 IntelliJ IDEA、Eclipse 等)连接到该端口进行调试。

在Kubernetes 集群环境中,将容器内部的调试端口转发到本地端口上。

kubectl port-forward pod-name 5005:5005

注意:pod-name 是要进行调试的容器所在POD的名称或 ID。


2.2 使用nodePort方式暴露调试端口

当然,如果不想使用上边暴露指定端口的方式的话,可以使用nodePort方式,手动修改POD的services配置文件,加入下面的配置:

- name: debug
  nodePort: 34567
  port: 5005
  porttocol: TCP
  targetPort: 5005

上边配置说明给目标POD增加了一个新的端口映射。5005 --》 34567


3. 在IDEA启动运行配置中加入Remote JVM Debug配置

在出现的窗口面板中,Configgurations Logs配置参数如下:文章来源地址https://www.toymoban.com/news/detail-689952.html

Debugger mode: Attatch to remote JVM

Transport: Socket

#指定的POD服务所在节点IP地址
Host: 1.1.1.1

#指定POD服务暴露的调试端口
Port: 34567

#下面的这行参数不用关心,自动产生的
Command line argumens for remote JVM: 
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=34567

4. DEBUG调试

  1. 首先,在本地IDEA中运行Remote Debug
  2. 在postman上配置POD所在集群的主节点IP地址,端口为POD中项目的业务端口,注意不要配成上边暴露的远端debug端口34567

到了这里,关于IDEA工具远程DEBUG调试K8S环境中的容器应用(Java应用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Idea实现远程debug调试

    2024年04月26日
    浏览(33)
  • jvm开启远程调试功能;idea远程debug

    有时候一些问题本地调试无法复现,这个时候可以开启 jvm 的远程调试功能 jdk8 jdk11/17 修改 tomcat 的 bin 下的 catalina.sh 文件 把 jpda_address 对应的 localhost:8000 改为 8000 ,意味着允许任何人访问。 填上对应的 ip 和端口即可,当然要确保被连接的服务的代码和本地是一致的,不然代

    2024年02月11日
    浏览(28)
  • k8s debug 浅谈

    一    k8s debug 浅谈 Kubernetes 官方出品调试工具上手指南(无需安装,开箱即用) debug-application 简化 Pod 故障诊断: kubectl-debug 介绍 1.18 版本之前需要自己安装kubectl debug     下载位置    debug_0.1.1_linux_amd64.tar.gz ①  低版本 安装kubectl-debug工具    ②  临时容器 Debugging using a cop

    2024年02月04日
    浏览(20)
  • IDEA远程调试kubernetes环境中的容器应用(Java应用)

    IDEA远程调试kubernetes环境中的容器应用(Java应用) 应用场景:Java开发的项目在本地运行正常,然后将 容器运行方式的项目发布到远端服务器上线运行后,出现了异常情况,此时频繁去修改代码发布镜像进行问题验证,将耗费较大的时间成本。 为了提高问题定位和代码调试效率

    2024年02月10日
    浏览(34)
  • 使用 IDEA 远程 Debug 调试,太实用了!

    有时候我们需要进行远程的debug,本文研究如何进行远程debug,以及使用 IDEA 远程debug的过程中的细节。看完可以解决你的一些疑惑。 远程debug的服务,以springboot微服务为例(springcloud的应该差不多,我没研究过)。首先,启动springboot需要加上特定的参数。 推荐一个开源免费的

    2024年02月12日
    浏览(26)
  • IntelliJ IDEA远程调试:使用IDEA Remote Debug进行高效调试的指南

    在开发分布式系统时,调试是一个重要但复杂的环节。开发者通常需要跨越多个服务、模块和线程来追踪和解决问题。在没有远程调试的情况下,许多开发者会在代码中添加各种日志语句,然后重新部署和上线来调试。这种方法不仅费时,而且可能引入额外的错误或问题。

    2024年02月09日
    浏览(28)
  • IDEA实现远程Debug调试(附上Demo代码)

      需要准备JDK1.8环境,安装IDEA(版本不限) (1)、创建demo项目 1.File一New一project… 2.Maven Archetype一填写Name一选择jdk1.8一选择Web一创建 (2)、引入依赖 参数详解: 【-Xdebug】:通知JVM工作在DEBUG模式下。 【-Xrunjdwp】:通知JVM使用(Java debug wire protocol)运行调试环境。 【transport】:指

    2024年02月06日
    浏览(30)
  • IDEA 远程 Debug 调试,你可以不需要,但是要会

    远程debug真的很有用,我个人的真实经历就是有一次,我新开发的功能,在生产上没生效,我询问了运维多次,运维也多次确认回复说是最新的包,又是查日志,对数据,仍然没发现问题,最后我就采用远程debug发现我新开发的代码不存在。 所以不需要不要紧,但是要会,作

    2024年02月08日
    浏览(45)
  • 关于java k8s容器环境中的jvm配置与优化

    环境 版本 备注 k8s v1.22+ 配置cpu/mem limit、健康/就绪检查 openjdk 8 openjdk version \\\"1.8.0_342\\\" k8s容器化(docker)环境更好的解决了 java app 运行环境的封装问题。但存在着一些限制,比如 Java 并不能发现 pod 设置的内存限制(mem limit,java 默认以宿主机的内存为基准),当 java 内存占用

    2024年02月16日
    浏览(41)
  • IDEA Go语言开发环境无法debug调试

    使用idea 搭建go开发环境后如果debug调试可能会遇到错误: could not launch process: decoding dwarf section info at offset 0x0: too short。 有些回答go get -u github.com/derekparker/delve/cmd/dlv 。如果使用go mod方式开发的话这种方式是行不通的,最直接的方法是把dlv项目下载下来自己编译生成dlv.exe。 进

    2024年02月14日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包