当前位置:网站首页>微服務遠程Debug,Nocalhost + Rainbond微服務開發第二彈

微服務遠程Debug,Nocalhost + Rainbond微服務開發第二彈

2022-07-07 22:31:00 51CTO

之前的文章中我們介紹了如何通過  Nocalhost 快速開發 Rainbond 上的微服務,介紹了基本的開發流程。

本文將續接上文繼續介紹,使用  Nocalhost 開發配置文件 實現以下內容:

  • 一鍵 Run 和 遠程Debug
  • 持久化配置
  • 開發容器資源限制
  • 端口轉發

什麼是開發配置?

開發配置是圍繞 開發模式 來進行的,例如使用什麼鏡像來進入 開發模式,是否需要開啟持久化來保存開發容器的內容,將哪些文件同步到開發容器中,如何一鍵調試、一鍵運行容器內的服務等。 配置了正確且合適的開發配置後,可以在使用 Nocalhost 開發模式 時更加得心應手。

部署 Rainbond + SpringCloud

接下來繼續以上文中的 SpringCloud Pig 為例,調試 Java Maven 服務的 Pig-auth 模塊。

項目 Gitee 地址: https://gitee.com/zhangbigqi/pig

部署 Rainbond

這裏就不詳細介紹 Rainbond 的安裝,請參閱  基於Linux安裝Rainbond

部署 SpringCloud

我們在 Rainbond 內對接了開源應用商店後,在開源應用商店內搜索 Spring Cloud Pig 安裝 3.5.0 版本。

來自應用商店安裝應用組件的英文名稱是自動生成的字符串,需要我們設置一下組件的英文名稱(Deployment Name),通過 Nocalhost 連接到集群時可以很直觀的分清楚 Deployment 對應的組件。

微服務遠程Debug,Nocalhost + Rainbond微服務開發第二彈_k8s debug

Nocalhost 對接 Rainbond

  1. 安裝 Nocalhost JetBrains Plugin 插件,請參閱文檔  安裝Nocalhost JetBrains Plugin 插件

  2. 獲取 K8s Kubeconfig,請參閱文檔  獲取 Kubeconfig 文件

  3. pig 命名空間下,找到工作負載 pig-auth 右擊並選擇 Dev Config (開發配置)

微服務遠程Debug,Nocalhost + Rainbond微服務開發第二彈_容器雲_02

  1. 將以下配置文件複制到 Dev Config 中。
# Deployment Name
name: pig-auth
serviceType: deployment
containers:
	# Deployment 主容器名稱
  - name: auth
    dev:
    	# 開發鏡像,該鏡像包含了 Java Maven 環境
      image: registry.cn-hangzhou.aliyuncs.com/zqqq/maven:3.8.6-openjdk-8
      # 默認終端為 bash
      shell: bash
      # Rainbond 提供的 StorageClass Name
      storageClass: rainbondvolumerwx
      # 配置開發容器資源
      resources:
        limits:
          memory: 4096Mi
          cpu: "2"
        requests:
          memory: 2048Mi
          cpu: "1"
      persistentVolumeDirs:
      	# Maven 依賴包緩存路徑,配合 storageClass 一起食用
        - path: /root/.m2/repository
          capacity: 10Gi
      command:
        # 一鍵啟動命令,安裝依賴包和啟動 pig-auth 子模塊
        run:
          - mvn
          - install
          - '&&'
          - mvn
          - spring-boot:run
          - -pl
          # 指定子模塊啟動
          - pig-auth
        # 一鍵 Debug 命令,安裝依賴包和 Debug pig-auth 子模塊
        debug:
          - mvn
          - install
          - '&&'
          - mvn
          - spring-boot:run
          - -pl
          # 指定子模塊啟動
          - pig-auth
          # Java Debug 命令
          - -Dspring-boot.run.jvmArguments=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
      debug:
        # 遠程端口,對應Debug命令中的 address=5005
        remoteDebugPort: 5005
        # 選擇 Java 語言
        language: java
      # 熱加載
      hotReload: true
      # 文件同步
      sync:
        type: send
        mode: gitIgnore
        deleteProtection: true
      # 端口轉發,轉發容器內的3000端口到本地3999
      portForward:
        - 3999:3000

     
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.

一鍵 Run

  1. 右擊工作負載 pig-auth
  2. 選擇 Remote Run。
  3. Nocalhost 會自動進入 DevMode 並執行 Remote Run。

微服務遠程Debug,Nocalhost + Rainbond微服務開發第二彈_k8s debug_03

一鍵 Debug

  1. 右擊工作負載 pig-auth
  2. 選擇 Remote Debug。
  3. Nocalhost 會自動進入 DevMode 並執行 Remote Debug。
  4. 在代碼中打上斷點,發起請求,進入 IDE Debug 模式。

微服務遠程Debug,Nocalhost + Rainbond微服務開發第二彈_k8s debug_04

持久化配置

在開發時,我們希望持久化的文件大多數都是 依賴包日志,本篇文章中也是緩存了 Java 的依賴包。

rainbondvolumerwx 是 Rainbond 默認提供的存儲類,填寫以下配置後會在當前命名空間下自動創建 PVC,如下:

storageClass: rainbondvolumerwx					
persistentVolumeDirs:
  - path: /root/.m2/repository
    capacity: 10Gi

     
  • 1.
  • 2.
  • 3.
  • 4.

微服務遠程Debug,Nocalhost + Rainbond微服務開發第二彈_容器雲_05

容器資源限制

限制開發容器的資源,限額能讓服務器的資源利用最大化,可以通過以下開發配置修改:

resources:
  limits:
    memory: 4096Mi
    cpu: "2"
  requests:
    memory: 2048Mi
    cpu: "1"

     
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

端口轉發

轉發容器端口到本地,可以通過以下開發配置修改:

portForward:
  - 3999:3000 		# 轉發容器 3000 端口到本地 3999 端口

     
  • 1.
  • 2.

最後

當然 Nocalhost 可以同時調試多個微服務,同樣的方式只需修改配置文件中的 Deployment Name 和 Containers Name 以及微服務的子模塊。

Nocalhost 還有一些開發配置文中沒講到的,比如:開發環境變量、文件同步的兩種模式 patterngitignore 等等,並且 Nocalhost 支持多種語言,Java 只是其中一種,小夥伴們可以自行探索。

Nocalhost + Rainbond 讓開發、部署更加高效、便捷。

原网站

版权声明
本文为[51CTO]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207072135076210.html