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

相关推荐
ScilogyHunter14 分钟前
Hercules系列安全MCU功能安全原理详解
java·单片机·安全·hercules
博风33 分钟前
eclipse中配置maven,以及在本地使用maven。
java·eclipse·maven
云-缩影33 分钟前
实际项目中怎么选排序算法:从面试题到工程落地
java·算法·排序算法
追星星の人35 分钟前
java web项目(eclipse软件)全流程备份
java·servlet
文丑颜不良啊2 小时前
LeetCode1461~1480题目解析
java·leetcode
2301_780789669 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
学长毕设10 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
步行cgn10 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川11 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵11 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程