kubernetes - 是否可以使用服务名称在 kubernetes 中远程调试 java 程序
问题描述
现在我正在使用 kubectl 代理转发在 kubernetes(v1.15.2) 中远程调试我的 java 程序,如下所示:
kubectl port-forward soa-report-analysis 5018:5018 -n dabai-fat
我可以使用intellij idea远程连接我的localhost端口5018来远程调试远程数据中心kubernetes集群中的pod,但现在我面临的一个问题是每次我必须在pod升级后更改pod名称以重新调试,任何方式来保持稳定的调试渠道?
解决方案
我可以建议任何想在 Kubernetes 中调试 Java(以及 Go、NodeJS、Python、.NET Core)应用程序的方法的人查看skaffold。
它是一个简单的 CLI 工具,它使用您曾经使用的现有构建和部署配置。无需额外安装集群,修改现有部署配置等。
安装CLI:https
://skaffold.dev/docs/install/
打开你的项目,尝试:
skaffold init
这将使 skaffold 创建
脚手架.yaml
(skaffold 唯一需要的配置文件)
接着
skaffold debug
它将使用您现有的构建和部署配置来构建容器并部署它。如果需要,必要的参数将被注入容器中,端口转发将自动启动。
有关更多信息,请查看: https ://skaffold.dev/docs/workflows/debug/
这可以提供一种一致的方式来调试您的应用程序,而不必一直了解当前的 pod 或部署状态。
推荐阅读
- rdf - 如何在 protegè 中将外部 rdf 文件导入到我的本体中?
- django - 改变了外键的关系 | Django 模型
- assembly - 直接引用变量与相对于 %rip
- reactjs - 为什么我不能导入引导程序?
- xpath - xpath 跳过丢失的表格图像
- pattern-matching - 字符串匹配 - 最佳/最坏情况 big-Oh 复杂性
- python - 如何从单个字典创建嵌套字典?
- javascript - 如何返回所选多边形的坐标?
- python - ImportError: 无法从 'os' 导入名称 'wait' (C:\Python38\lib\os.py)
- python - 为什么 Winsound 有特定频率的脉冲?