如何使用 Eclipse 调试 kubernetes 部署的服务

How to debug kubernetes deployed service using Eclipse

我有一个使用 Java EE + Openliberty 编写的微服务。我已将其部署到我的 Docker-Desktop 中的 kubernetes 中。我想知道,有什么办法可以调试这个已部署的服务吗?我正在使用 Eclipse。请让我知道如何调试已部署的服务。谢谢!

如果你想调试你的应用程序,你可以使用 squash or telepresence. Here is great article comparing these two solutions

文章还提到 squash 不支持 eclipse,但请注意,它是在 2018 年编写的,此后添加了 squash support for eclipse IDE

我衷心赞同远程呈现。我还没有真正使用它,但我已经证实,一旦我们准备好一些部件,它就会对我们的企业非常有用。

但是,我认为您的简单情况不需要那么复杂。 Telepresence 非常适合将新代码注入集群而无需实际部署它。在您的情况下,您只想调试现有代码。这允许更简单的机制。

要在 Eclipse 中进行远程调试,您需要连接到调试器端口。要在 k8s 集群中使用代码 运行 执行此操作,您必须公开要连接的端口,并使其在您的桌面上可用。

在您的图像中,您必须确保您的 Java 命令行具有“-Xdebug”参数,该参数指定调试器端口(约定为 5005)。您还必须确保您的 Dockerfile 指定要公开的端口。当集群中的 运行 时,您必须在桌面上使用 "kubectl port-forward"(使用适当的参数)。这会将集群中的调试器端口代理到桌面上的相应端口。然后从 Eclipse 连接到该端口。