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:501906

评论

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

KubeCon China 2024 | KubeEdge 邀您共话边云协同AI智算

华为云原生团队

云计算 容器 云原生

万界星空科技服装行业MES系统解决方案

万界星空科技

工业互联网 制造业 服装行业 mes 万界星空科技

SwitchResX for Mac 轻松调整苹果电脑显示器配置参数

Rose

大促高并发系统性能优化实战--京东联盟广告推荐系统

京东科技开发者

传智教育引通义灵码进课堂,为技术人才教育学习提效

阿里云云效

阿里云 云原生 通义灵码

Charles for Mac注册激活版:轻松地捕获分析修改HTTP、HTTPS和TCP流量

Rose

Clicker for YouTube mac版 YouTube视频播放器客户端

Rose

Go语言中使用 sqlx 来操作 MySQL

左诗右码

Go 语言

【永久破解版】MAMP PRO (本地Web服务器开发环境) mac&win

Rose

淘宝商品评论接口API:获取淘宝商品评论数据评论总数(支持排序)

tbapi

淘宝API接口 淘宝商品评论接口 淘宝商品评论数据 淘宝商品评论API

苹果apple音乐制作软件:Logic Pro X for Mac v10.8.1中文版

Rose

万界星空科技AI低代码MES,引领制造业智能化新潮流

万界星空科技

低代码 低代码平台 mes 万界星空科技 低代码云MES

ETL数据集成丨将SQL Server数据同步至Oracle的具体实现

谷云科技RestCloud

数据库 oracle ETL 数据集成 SQL Server

面试官:说说volatile应用和实现原理?

王磊

互联网主机监控与审计系统是堡垒机吗?两者有什么区别吗?

行云管家

网络安全 运维‘

「重构:改善既有代码的设计」实战篇

京东科技开发者

变“金点子”为“好应用”,合合信息智能文档处理技术助力大学生探索AI创新边界

合合技术团队

人工智能 科技 比赛 合合信息

再升级!MoneyPrinterPlus集成GPT_SoVITS

程序那些事

工具 AIGC

智能搜索,Paste for Mac让你快速找到需要的剪切板内容!

Rose

传智教育引通义灵码进课堂,为技术人才教育学习提效

阿里巴巴云原生

阿里云 云原生 通义灵码

高效的AirPods耳机管理工具 AirBuddy for Mac v2.6.3汉化版

Rose

Stata 15 for Mac(强大的数据分析计算软件)v15.1永久激活版

Rose

打造领域专属的大语言模型

霍格沃兹测试开发学社

深圳堡垒机生产经营公司哪家靠谱?选哪家好?

行云管家

网络安全 堡垒机 深圳

周期补数据、定时补数据,深入了解两种补数据的特殊方式

袋鼠云数栈

大数据

mac触摸板增强工具BetterTouchTool下载 附BetterTouchTool注册码

Rose

好用的 NTFS 磁盘管理器NTFS Disk by Omi NTFS for mac

Rose

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