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文件即可

相关推荐
考虑考虑1 天前
JDK25模块导入声明
java·后端·java ee
_小马快跑_1 天前
Java 的 8 大基本数据类型:为何是不可或缺的设计?
java
Re_zero1 天前
线上日志被清空?这段仅10行的 IO 代码里竟然藏着3个毒瘤
java·后端
洋洋技术笔记1 天前
Spring Boot条件注解详解
java·spring boot
程序员清风2 天前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
皮皮林5512 天前
利用闲置 Mac 从零部署 OpenClaw 教程 !
java
NE_STOP2 天前
springMVC-HTTP消息转换器与文件上传、下载、异常处理
spring
华仔啊2 天前
挖到了 1 个 Java 小特性:var,用完就回不去了
java·后端
SimonKing2 天前
SpringBoot整合秘笈:让Mybatis用上Calcite,实现统一SQL查询
java·后端·程序员
日月云棠3 天前
各版本JDK对比:JDK 25 特性详解
java