k8s测试环境开启远程调试

1. 确保pod开启了JPDA端口(运维协助)

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar xxx.jar

注意上述端口为:5005

案例:

在jenkins配置文件增加如下配置:

2. yaml配置文件修改(运维协助)

yaml 复制代码
containers:
      - name: spring-app
        # ...
        ports:
        - containerPort: 8080 # 应用端口
        - containerPort: 5005 # **调试端口 (关键)**

案例:

3. 建立端口转发隧道

shell 复制代码
## 1.  找到需要调试的pod名称
kubectl get pods -n <your-namespace>
## 例如C大脑: kubectl get pods -n cbrain


## 2. 执行端口转发命令
kubectl port-forward <pod-name> 5005:5005 -n <your-namespace>
## 注意:这里的 5005是第一步里面JPDA开启的端口

案例:

shell 复制代码
 kubectl port-forward cbrain-sipoc-build-76c44cc498-xm9q4 5005:5005 -n cbrain-test

4. IDE连接

shell 复制代码
1. 打开IDE
2. 创建一个 remote JVM Debug 配置
3. 设置参数连接 host:localhost, port: 16005 ## 这里的16005是第3步里面映射端口
4. 点击IDE的debug按钮

案例:

5. 业务端口转发

!!! 注意:

同第3步,区别是:第3步为调试端口转发,这里是业务端口转发。两个端口转发都需要保持开启。

kubectl port-forward 30089:30088 -n

这建立了第二个隧道,将所有发送到本地 30089 端口的 HTTP 请求转发到远程 Pod 的 30088 业务端口。

案例:

kubectl port-forward cbrain-sipoc-build-76c44cc498-xm9q4 30089:30088 -n cbrain-test

6. 本地发起请求

使用postman或者HTTP文件即可

相关推荐
shejizuopin几秒前
基于JavaSSM+MySQL的实验室考勤管理系统设计与实现
java·mysql·vue·毕业设计·论文·springboot·实验室考勤管理系统设计与实现
J***516812 分钟前
SpringSecurity的配置
java
面汤放盐13 分钟前
软件架构指南 Software Architecture Guide
java·微服务·devops
tkevinjd13 分钟前
JUC5(线程池)
java·线程池·多线程·juc
Tao____14 分钟前
如何对接Modbus-tcp协议(使用Thinlinks物联网平台)
java·物联网·网络协议·tcp/ip·modbus
鱼跃鹰飞19 分钟前
经典面试题:K8S的自动缩扩容和崩溃恢复
java·容器·kubernetes
Coder_Boy_23 分钟前
Spring Boot 事务回滚异常 UnexpectedRollbackException 详解(常见问题集合)
java·spring boot·后端
青云交24 分钟前
Java 大视界 -- 基于 Java+Redis Cluster 构建分布式缓存系统:实战与一致性保障(444)
java·redis·缓存·缓存穿透·分布式缓存·一致性保障·java+redis clus
不知疲倦的仄仄26 分钟前
第五天:深度解密 Netty ByteBuf:高性能 IO 的基石
java·开源·github
xiaobaishuoAI29 分钟前
后端工程化实战指南:从规范到自动化,打造高效协作体系
java·大数据·运维·人工智能·maven·devops·geo