debugging 如何使用云代码插件在Kubernetes中调试Java应用程序

nsc4cvqm  于 2022-11-14  发布在  Kubernetes
关注(0)|答案(2)|浏览(121)

我尝试使用云代码插件在Kubernetes中调试一个Java应用程序。默认调试没有问题。我只需点击调试,它就可以工作了,但是...我不知道如何在启动时连接到应用程序。
我尝试添加选项-agentlib:jdwp=transport=dt_socket,server=n,suspend=**y**,address=,quiet=y,但JVM崩溃了,因为云代码添加了自己的选项agentlib,JVM无法处理同名的两个选项。
如何编辑云代码的agentlib选项?(添加suspend=y)或者禁用该选项。
或者,也许有另一种方法可以在应用程序启动时对其进行调试?

dffbzjpn

dffbzjpn1#

我已尝试将agentlib选项添加到JDK_JAVA_OPTIONS,但scaffold(云插件内的库)尝试在JAVA_TOOL_OPTIONS中查找agentlib
我已将该选项放在正确的位置,而且效果良好

hrirmatl

hrirmatl2#

将此作为答案添加,以提供更多上下文。
Skaffold目前不支持此功能。有一个open feature request on Skaffold to add this ability
对于Skaffold来说,添加对此的支持并不是一个高优先级的项目,因为在启动时挂起通常会导致令人困惑的问题级联,如启动、就绪和活动探测器超时,导致pod重新启动,然后终止调试会话,然后建立新会话。(例如,作为普通Java应用程序运行,并通过env变量模拟Kubernetes启动,发送消息等)。
尽管如此,Skaffold应该尊重在命令行或JAVA_TOOL_OPTIONS中传递的现有-agentlib设置。

相关问题