idea遠程debug(物理機、docker、k8s)


IDEA遠程DEBUG

1:物理機部署的Springboot項目遠程DEBUG

1.1:idea配置

點擊"Edit Configurations",再點擊+,選擇Remote,

 

 

 

 

 

接下來是idea的連接遠程主機的jvm配置,遠程主機項目啟動的時候需要加上啟動參數,啟動參數在填寫完Host和Port和選擇JDK版本之后會自動生成,不同的JDK版本的參數是不一樣的。

 

 

1.2啟動項目

 

 

1.3測試

 

 

 

 

至此,物理機遠程debug已經完成。

2:Docker遠程部署debug

idea的配置和物理機是一樣的,主要區別就是docker啟動的時候需要暴露出JVM遠程debug監聽的端口

首先,正常把Springboot項目打成jar包,然后使用Docker命令把jar包打成docker鏡像

Dockerfile文件內容如下:和以往不同的主要是暴露出遠程debug的端口

 

 

start.sh啟動腳本的內容如下:

 

 

然后把jar包打成docker鏡像

 

 

查看鏡像是否創建成功:

 

 

啟動容器:啟動的時候記得要加上遠程debug的端口映射

 

 

查看容器是否啟動成功:

 

 

測試:和物理機的測試一樣。

3:kuberneters遠程debug

kubernetes的遠程debug是建立的第二步docker鏡像remote_debug的基礎上,主要區別就是正常創建pod之后需要在pod上暴露出遠程debug的端口,然后在新建一個NotePort類型的Service,暴露出對應的端口供遠程debug使用。

3.1使用pod控制器Deployment創建pod

注意:使用pod控制器Deployment創建pod之前要確保k8s集群中的每台機器都打包了remote_debug這個鏡像,不會創建pod的時候會找不到對應的鏡像的。

使用Deployment創建pod的yaml內容,test_debug.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: remote-debug
namespace: dev
spec:
replicas: 3
selector:
  matchLabels:
    app: debug
template:
  metadata:
    labels:
      app: debug
  spec:
    containers:
    - name: test
      image: remote_debug
      imagePullPolicy: Never
      ports:
      - containerPort: 8001
      - containerPort: 30435

查看控制器和pod是否創建成功

 

 

創建訪問APP的service,app-svc.yaml

apiVersion: v1
kind: Service
metadata:
name: app-service
namespace: dev
spec:
selector:
  app: debug
type: NodePort # service類型
ports:
- port: 8001
  # nodePort: 5006 # 指定綁定的node的端口(默認的取值范圍是:30000-32767), 如果不指定,會默認分配
  targetPort: 8001

查看訪問APP的service是否創建成功

 

 

創建暴露debug端口的service,remote-svc.yaml

apiVersion: v1
kind: Service
metadata:
name: remote-service
namespace: dev
spec:
selector:
  app: debug
type: NodePort # service類型
ports:
- port: 30435   # service端口
  nodePort: 30435 # 主機端口 指定綁定的node的端口(默認的取值范圍是:30000-32767), 如果不指定,會默認分配
  targetPort: 30435 # pod端口

查看暴露debug端口的service是否創建成功

 

 

測試(和物理機部署測試一樣)

只不過這里瀏覽器訪問的時候要訪問app-service暴露的端口

http://master:32341/test

然后idea啟動debug就可以愉快的debug了。

 

至此,本文已經結束,相信會對大家使用idea進行遠程debug有一定的幫助!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM