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

相关推荐
桃西西呀5 分钟前
Spring AI Alibaba 之七:我没写一行 tracing 埋点,Agent 每一步却被 Micrometer 看得清清楚楚
人工智能·spring·llm
桃西西呀5 分钟前
Spring AI Alibaba 之八:我让 Agent 直接执行 shell 命令,它却读到了目录里的密钥,沙箱到底防住了什么
人工智能·spring·llm
荣码6 分钟前
从0到1搭一个生产级RAG系统:串联前面21篇所有知识
java·python
xuxigifxfh8 分钟前
牛客:HJ170 01序列
java·开发语言·算法·华为机考
野生技术架构师30 分钟前
牛客网互联网大厂 Java 高频面试题整理(持续更新)
java·开发语言
小师兄吃牛肉1 小时前
Java语法 | 多重循环
java·开发语言·python
Han.miracle1 小时前
MySQL InnoDB:MVCC、记录锁、间隙锁、二级索引MVCC底层原理
java·开发语言
不停喝水2 小时前
【前端转全栈java速通课】 项目实战④7-11节 操作数据库-登录-注册-修改密码-注销-mubatis-plus简化crud-
java·前端·数据库
y1su2 小时前
Leetcode 二分模板
java·数据结构·算法·leetcode·排序算法
~光~~2 小时前
【嵌入式linux学习】Cache 策略:Write-Through / Write-Back + Allocation
linux·学习·spring