【问题标题】:How to set intellij remote debug?如何设置intellij远程调试?
【发布时间】:2022-01-19 02:29:51
【问题描述】:

我正在尝试在测试环境中调试我的应用程序,我的应用程序在 pod 中运行,我说 'pod' 因为我不熟悉 Kubernetes,它的管理客户端如下所示:@987654321 @。我知道我应该像idea RUN/Debug Configurations schematic diagram 这样设置想法。并且应该重新启动并重新部署我的应用程序,我首先更改了 Dockfile。原始指令是FROM xxx/java:alpine VOLUME /tmp ADD recruitment.jar app.jar ENTRYPOINT ["java","-Xmx2048m","-jar","/app.jar"],我将其更改为FROM xxx/java:alpine VOLUME /tmp ADD recruitment.jar app.jar ENTRYPOINT ["java","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005","-jar","/app.jar"],但它总是显示像Error running 'face_remote': Unable to open debugger port (888.88.888.888[not real]:5005): java.io.IOException "handshake timeout" 这样的错误。我不确定这个 ip,因为我使用 'ping 888.88.888.888' 指令不能成功。我使用这个ip是因为Swagger请求url的域名的ip是this.this mainenter image description here。我猜如果应用程序在 docker 或 k8s 中运行,它会有不同的交互模式。不像只是在linux中运行

【问题讨论】:

    标签: java docker kubernetes intellij-idea web-deployment


    【解决方案1】:

    大部分附加图像不可见。

    • IP 地址应该可以从您的本地系统访问 [888.88.888.888] 请注意,确保这是正确的。
    • 调试端口也需要从本地系统映射 - 使用端口转发 例如:kubectl 端口转发 5005:5005

    如果你已经配置了端口转发,那么你可以使用 localhost:5005 进行调试

    【讨论】:

      【解决方案2】:

      我看到你可以检查三件事:

      检查 IP 地址: jar 文件在 Docker 容器中运行,该容器在 pod 中运行。要访问 pod,您通常需要通过服务和入口。您使用的 ip 很可能会命中入口/服务或任何其他更高层。

      要附加远程调试器,您需要直接连接到 PodIP。这样做的一种方法是首先使用工具 kubectl 连接到您的 kubernetes 集群(需要一些配置)并从您的 pod 进行端口转发:kubectl port-forward my-pod-c93b8b6df-8c4aa 5005:5005 pod(例如,pod 实例名称是 my-pod-c93b8b6df-8c4aa)。

      这将打开从本地计算机到 pod 的连接。然后你需要通过kubectl describe pods my-pod-c93b8b6df-8c4aa 识别 PodIP 并在 IntelliJ 中使用它

      检查端口是否暴露: 确保在测试环境中从 pod 公开端口 5005(类似于在本地运行容器时公开端口)。

      如何执行此操作在一定程度上取决于您运行 Kubernetes 集群的方式。如果你使用 Helm chart,你可以在部署 yaml 的 port 部分添加这样的配置:

      - containerPort: 5005
        name: debug
        protocol: TCP
      

      查看调试命令地址: 最后一件事是确保您在命令行选项中添加了正确的地址。正如 IntelliJ 在调试编辑器中建议的那样:对于 JDK9+,使用 …suspend=n,address=*:5005,对于 JDK8 及以下版本,使用 …suspend=n,address=5005

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-06
        • 1970-01-01
        • 2011-05-13
        • 1970-01-01
        • 2012-05-05
        • 1970-01-01
        • 1970-01-01
        • 2013-10-30
        相关资源
        最近更新 更多