写点什么

运行在 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:501736

评论

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

实时防护,清洗服务可用性达99.95%,江苏杰邦芜湖DC安全基地正式上线

江湖老铁

如何确保度量过程中收集到的数据是有实际意义的?

思码逸研发效能

研发效能 数据研发 研发效能度量 研发效能管理

TikTok封号原因有哪些?怎么解决?

Ogcloud

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

豆包MarsCode 助力:Canvas 上的素描变色魔法✨

TRAE.ai

程序员 AI 开发 代码 可画

MySQL 8.0 执行COUNT()很慢原因分析

GreatSQL

从热数据到冷数据:TDengine 多级存储如何助力智能数据管理

TDengine

数据库 tdengine 时序数据库

Playwright:掌握Web自动化测试的新利器

霍格沃兹测试开发学社

低代码,而不是低能力,低代码能成为企业降本增效的神器吗?

积木链小链

低代码 低代码开发

TDengine 签约蘑菇物联,改造通用设备工业互联网平台

TDengine

数据库 tdengine 时序数据库

IT服务台的5个基本参与度指标

ServiceDesk_Plus

IT服务管理 IT服务台 IT服务台指标

【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit

HarmonyOS SDK

HarmonyOS

大语言模型鼻祖Transformer的模型架构和底层原理

Zilliz

nlp Transformer 大模型 Zilliz LLM

万界星空科技汽车零部件MES解决方案

万界星空科技

mes 万界星空科技mes 汽车行业数字化转型 汽车零部件 汽车零部件mes

度量数据是人工凭感觉录入的,产生的偏差如何解决?

思码逸研发效能

DevOps 研发效能 效能度量 研发效能管理

如何预测市场趋势和潜在价格变动?请收好这份「加密货币蜡烛图」解读指南

TechubNews

Premiere Pro 2025 for mac(adobe pr 2025) 特别版

你的猪会飞吗

mac破解软件下载 pr2025下载

团子东子开奖了,这泼天的富贵!

王磊

达摩院发布八观气象大模型:精度达1小时1公里,率先落地国网山东省调

新消费日报

怎么对ppt进行批注?2个PPT制作干货分享!

职场工具箱

效率工具 PPT 办公软件 高效办公 AI生成PPT

怎么在国内运营tiktok账号?

Ogcloud

云手机 tiktok云手机 tiktok运营 TikTok矩阵运营 tiktok运营干货

打造理想开发环境!双十一硬核装备与云资源全攻略【必备收藏清单】💻🌐

申公豹

程序员

探讨京东商品 API 接口:运用及收益

科普小能手

API 接口 API 测试 京东API接口 京东API 京东商品API

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