资讯专栏INFORMATION COLUMN

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

keithyau / 3709人阅读

摘要:版本最近刚发布就立马成为容器,,等等的事实上的集群管理路径。当你你的,你应该有方法启动调试。现在你可以将你的远程调试器附加到。

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到一个特殊端口

ceposta@postamac(~) $ kubectl port-forward file-ingress-events-3artj  5005:5005

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

希望这篇帖子可以帮助你调试你的Java apps!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32439.html

相关文章

  • 运行Kubernetes应用程序Java远程调试

    摘要:版本最近刚发布就立马成为容器,,等等的事实上的集群管理路径。当你你的,你应该有方法启动调试。现在你可以将你的远程调试器附加到。 Kubernetes1.2版本最近刚发布就立马成为容器(Docker,Rocket,Hyper等等)的事实上的集群管理路径。这里是一些关于1.2版本的有趣特点: 集群现在可以扩容到30,000个容器一个集群 优雅的关闭节点,过渡到集群里运行的其他节点 自定义...

    Reducto 评论0 收藏0
  • 为高效 Ops 和 SRE 团队准备 10 个开源 k8s 工具

    摘要:渲染节点并指明它们的总体状态。为节点和提供工具提示信息。作为一个日志查看器,允许你使用选择器从匹配的流式的查看日志。日志查看器你可以基于标准的标签选择器匹配,通过名字,通过服务,通过部署,等等。使得和团队在容器排错和安全调查方面很方便。 如果你正在 Kubernetes 上工作,你的 SRE 和 Ops 团队需要正确的工具来确保Kubernetes集群的高可用和在其中运行的工作负载。这...

    Harriet666 评论0 收藏0
  • 为高效 Ops 和 SRE 团队准备 10 个开源 k8s 工具

    摘要:渲染节点并指明它们的总体状态。为节点和提供工具提示信息。作为一个日志查看器,允许你使用选择器从匹配的流式的查看日志。日志查看器你可以基于标准的标签选择器匹配,通过名字,通过服务,通过部署,等等。使得和团队在容器排错和安全调查方面很方便。 如果你正在 Kubernetes 上工作,你的 SRE 和 Ops 团队需要正确的工具来确保Kubernetes集群的高可用和在其中运行的工作负载。这...

    KevinYan 评论0 收藏0
  • 用友云开发者中心助你上云系列之线调试

    摘要:如何使用开发者中心进行在线调试如果你已经使用了开发者中心部署应用上云,那么,可以非常荣幸的告诉你,看完下面的步骤,只需几秒钟的配置,就可以解救你于水火之中。此过程也可以用于日常开发过程中的在线定位问题,面对众多的微服务,无需再烦恼了。 现在,大家开始越来越多的谈论到高可用架构的互联网应用。什么是高可用?高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素...

    opengps 评论0 收藏0
  • 用友云开发者中心助你上云系列之线调试

    摘要:如何使用开发者中心进行在线调试如果你已经使用了开发者中心部署应用上云,那么,可以非常荣幸的告诉你,看完下面的步骤,只需几秒钟的配置,就可以解救你于水火之中。此过程也可以用于日常开发过程中的在线定位问题,面对众多的微服务,无需再烦恼了。 现在,大家开始越来越多的谈论到高可用架构的互联网应用。什么是高可用?高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素...

    dunizb 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<