2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

运行在 Kubernetes 上的应用程序的 Java 远程调试

  • 2020-03-12
  • 本文字数:1077 字

    阅读完需:约 4 分钟

运行在Kubernetes上的应用程序的Java远程调试

Kubernetes1.2 版本最近刚发布就立马成为容器(Docker,Rocket,Hyper 等等的事实上的集群管理路径。这里是一些关于 1.2 版本的有趣特点:


  • 集群现在可以扩容到 30,000 个容器一个集群

  • 优雅的关闭节点,过渡到集群里运行的其他节点

  • 自定义指定指标作为自动扩容的基础

  • 动态配置管理

  • 当你在本地笔记本上面开发微服务的时候,你可以使用 Kubernetes 来运行你的本地 Docker 容器,并且在你配置你的应用程序的时候,得到开发人员/QA/生产过程等相似过程。

  • 对于 Java 开发人员来说,有一件事肯定会发生:就是你如何看日志、做远程调试以及如何追踪协议栈。文章以下的内容是一些小提示:


为你的 Pod 跟踪日志


在一些集群管理系统中,你基本上不得不查找应用程序的本地 IP(如果是在容器里运行的话),无论如何都要 ssh 到它,然后找到日志并且跟踪它。有了 Kubernetes,你就不用必须做上述的任意事情了。除了你正在运行的那台机器(也就是你运行 Kubernetes client 的地方),你可以按照下面的来:


在你的集群里列出以下 pods



追踪日志


现在选择你想要追踪的日志,并且运行它!



如果必须的话,通过 Shell 连接


如果你由于某些原因必须登陆到 pod(在文件系统中试探一下,查看其它配置文件等等)



虚拟机远程调试你的应用程序


这样的话,查看你的应用程序上面发生了什么就会变得十分方便。为了做到这个,你只要做跟今天做的一样的事情就好了。当你 bootstrap 你的 JVM,你应该有方法启动 JVM 调试。例如,HawtApp Maven plugin 就是一个简单的 mvn 插件,可以将 Java Main 作为可执行的、简单的、灵活的 bootrtrap bin/run.sh 脚本(或者 windows 的批处理文件),允许你控制路径和通过环境变量调试。


令 Bootstrap Java 可以暴露到调试端口


比如:



通过 Kubernetes 密钥清单在 docker 容器里定义调试端口


现在你需要在你的 Docker 容器里面通过你的 Kubernetes 密钥清单(json/yaml)曝光端口 5005 (在这个例子里)



注意,我们已经添加了一个 env 变量到 Kubernetes 密钥清单文件到可以控制我们是否想要远程调试打开或者关闭(true/false)。Bootstrap 脚本(以上所述)会检查 env 变量,并且你可以通过 kube 密钥清单控制它(现在 Kube1.2 有了 ConfigMap,或者 OpenShift templates)。


最后一步是代理服务调试端口到你的本地机器。如果你在本地运行 kubectlclient,就会十分容易:


列出集群里的 pods



代理 pod 到一个特殊端口


上述代码会从你的本地环境(5005)端口转发到 pod 的端口 5005。现在你可以将你的远程调试器附加到 localhost:5005。


本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/juz9Lc_WwFUSeM2uS2Qm_Q


2020-03-12 22:501916

评论

发布
暂无评论
发现更多内容

中科大、月之暗面等开源对话式语音合成模型 MoonCast;ChatGPT 发布「录音模式」,自动录音和生成会议纪要丨日报

RTE开发者社区

AI本地化部署的流程

北京木奇移动技术有限公司

AI技术 软件外包公司 AI本地化

“一代更比一代强”:现代 RAG 架构的演进之路

Baihai IDP

AI LLM 检索增强生成

深度解读「高盛」人形机器人双研报:主流人形机器人公司梳理和商业化瓶颈(附报告)

机器人头条

科技 大模型 人形机器人 具身智能

DePIN的底层逻辑:让物理基础设施加速市场化

PowerVerse

加密货币 去中心化 算力 #区块链 DePIN

HTTP2.0 从原理到实践,保证把你治得服服帖帖!

左诗右码

郑州工程技术学院赴埃文科技开展访企拓岗促就业活动

郑州埃文科技

Java基础八股文面试题总结+答案解析

Geek_Yin

编程 程序员 java面试 Java面试题

GPU性能怎样影响大模型训练速度?

Ogcloud

gpu 服务器 服务器租用 gpu 算力

beyondcompare5永久激活密钥 及 Beyond Compare安装教程

Rose

背完这套 Java 面试八股文,offer拿到手软

Geek_Yin

编程 程序员 java面试 Java面试题

Redis 数据恢复的月光宝盒,闪回到任意指定时间

百度Geek说

AI 本地化部署的详细方案

北京木奇移动技术有限公司

软件外包公司 AI技术应用 AI本地化部署

数据太多、系统太慢、调度太乱?电力行业最全数据难题全在这份白皮书里

TDengine

数据库 tdengine 时序数据库

最全的Java面试八股文合集

Geek_Yin

编程 程序员 java面试 Java面试题

什么是Redis缓存穿透?redis面试题及答案乐分享(附面试题大全)

程序员高级码农

redis 程序员

家具工厂MES生产管理系统解决方案

万界星空科技

制造业 mes 万界星空科技mes 家具行业 家具mes

埃文科技智能数据引擎产品入选《中国网络安全细分领域产品名录》

郑州埃文科技

鸿蒙仓颉语言开发教程:仓颉语言中的状态存储

幽蓝计划

P4.81户外租赁LED显示屏全面解析

Dylan

LED LED display LED显示屏 市场 LED屏幕

通义灵码+云效 DevOps MCP:通过云效工作项自动生成代码并提交请求

阿里巴巴云原生

阿里云 云原生 通义灵码 MCP

一文就可搞清楚的HarmonyOS NEXT解锁模态页面的“真香”操作

程序员Feri

HarmonyOS NEXT

快手基础大模型团队7篇论文入选人工智能领域顶会ACL 2025

快手技术

acl 快手 论文解读 学术成果

如何批量查询手机号码归属地,在线工具平台,可按省份分离、按城市分开、按号段分类、按移动联通电信来分别导出excel。

飞舞的键盘

Java面试八股文大全(附各大厂面试真题及答案)

Geek_Yin

编程 程序员 java面试 Java面试题

TikTok账号被封原因及IP关联问题解决办法

Ogcloud

TikTok 云手机 海外云手机 tiktok运营 tiktok封号

AI本地化部署的优势

北京木奇移动技术有限公司

软件外包公司 AI本地化部署 AI本地化

通义灵码+云效 DevOps MCP:通过云效工作项自动生成代码并提交请求

阿里云云效

阿里云 通义灵码 MCP

2025最新版Java面试八股文PDF

Geek_Yin

编程 程序员 java面试 Java面试题

昇腾NPU上基于MindIE服务的AIME和MATH500测评方案

小顺637

大模型 昇腾

时序数据库 TDengine 带着三大石油项目落地实践,亮相 2025 中国石油石化大会

TDengine

数据库 大数据 tdengine 时序数据库

运行在Kubernetes上的应用程序的Java远程调试_行业深度_才云科技_InfoQ精选文章