文章目录


前言

        对于开发人员,debug调试本地服务是最基本的能力。但本地环境终究与真实环境存在一定的差异,有时候某些问题在本地环境正常,放到K8S容器后就出现问题,像这样的一些情况时,我们可能希望在本地能够调试测试、预生产乃至于生产环境(生产环境当然只是想想😄,不要这样做哦)的服务,现在我来介绍下如何进行远程debug k8s容器中服务。

一、远程调试需具备基本的素养

1.会idea的基本Debug调试,我想你大概是会的吧!

2.对K8S容器的部署文件有基本的了解。

3.本地能够访问K8S服务节点服务器,一般ping下或者telnet k8s中服务的service配置的ip和端口。

3.远程服务代码与本地调试代码必须保持一致,不然有可能会出现Debug点错位。

二、远程调试步骤

1.配置deployment

1)启动参数中增加如下参数

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

2)配置调试端口

2.配置service

配置节点端口

在配置时,nodePort一般不用指定(指定有可能会与其他服务端口占用同一个端口),配置完成后,会自动分配一个nodePort端口,后面只要不重新部署service,端口是不会变的

3.调试网络

网络调试的基础是你能够访问到K8S的节点服务器,不然一切都免谈。当然如果有足够的条件,你可以再配一层Ingress,将这个端口映射到某个外网IP上,那就不需要接通K8S容器内网了。

telnet 10.XX.XX.129 8888

使用telnet 工具进行调试,如果能进入telnet,说明ip与端口没有问题,可以进行后面的操作。

这里的IP是service节点ip,端口也是对应的节点端口。

4.本地创建远程调试服务

1)在idea中创建调试服务

2)配置参数

1、host与port是根据K8S的节点ip和端口。

2、模块选择与调试服务一致的代码,代码必须相同。

5.调试

像启动其他服务一样debug启动,打开断点,当远程运行到本地代码的断点时就会捕获断点,可以进行调试了。


总结

idea远程调试在调试一些本地环境无法复现或处理问题时,是一个很不错的方法的。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐