使用 Cloud Code for IntelliJ 偵錯 Kubernetes 應用程式

Cloud Code for IntelliJ 可讓您輕鬆地對已部署至 Kubernetes 叢集的應用程式進行偵錯。您可以對本機叢集 (例如 minikube 或 Docker Desktop)、Google Kubernetes Engine 或其他雲端服務供應商上的應用程式進行偵錯。

有了 Cloud Code 的偵錯支援,您就能略過手動設定,例如設定通訊埠轉送、安裝偵錯後端,或以正確的方式插入特定語言偵錯引數。您只需要具備 Cloud Code 且包含 skaffold.yaml 設定檔在內的 Kubernetes 應用程式即可。

您也可以使用 Cloud Code 在變更原始碼並進行疊代時,對應用程式進行偵錯

支援的 IDE

下表列出 Cloud Code 支援的偵錯語言和 IDE。表格中也會列出必要的外掛程式 (如適用):

語言 支援的 IDE 和版本 必要外掛程式
Java IntelliJ IDEA Ultimate 不適用
IntelliJ IDEA Community 不適用
Go IntelliJ IDEA Ultimate Go 外掛程式
GoLand 不適用
Node.js IntelliJ IDEA Ultimate Node.js 外掛程式
WebStorm 不適用
Python IntelliJ IDEA Ultimate Python 外掛程式
PyCharm Professional 不適用

如要進一步瞭解 IDE 支援,請參閱「支援的 JetBrains IDE」。

您可以使用 Cloud Code 設定中斷點,並針對下列語言在容器中執行的遠端應用程式進行偵錯:

Java

Cloud Code 會自動新增環境變數 JAVA_TOOL_OPTIONS,並搭配適當的 JDWP 設定,啟用偵錯功能。如果已存在 JAVA_TOOL_OPTIONS,Cloud Code 會使用 JAVA_TOOL_OPTIONS 中指定的現有設定。

Node.js

視應用程式結構和映像檔建構設定而定,您可能需要協助偵錯工具將本機來源對應至容器中的遠端來源。這可讓 Node 偵錯工具正確處理中斷點。

您可以透過下列任一方式設定這項功能:

  • 手動設定

    從下拉式選單中選取「Develop on Kubernetes」執行設定,然後點選「Edit Configurations」。在「Debug」分頁中,將來源對應從本機應用程式來源設定為遠端容器中的來源位置。

    在「Debug」分頁的來源對應部分中選擇來源位置

    設定選項:

    • 檔案/目錄:在 Kubernetes 上執行的應用程式本機檔案或目錄。
    • 遠端路徑:在 Kubernetes 容器中執行的檔案或目錄路徑。
  • 自動設定

    您可以選擇將這項對應作業延後至 Cloud Code。開始偵錯工作階段時,Cloud Code 會嘗試自動推斷這項對應。系統會在對話方塊中顯示推測的對應項目,每個正在偵錯的構件都有一個對話方塊。

    針對每個成果,指定所用遠端路徑的對應對話方塊

    設定選項:

    • 本機路徑:您要偵錯的構件根目錄的本機路徑。
    • 遠端路徑:在 Kubernetes 容器中執行的檔案或目錄路徑。您可以選擇覆寫為自己的值。如果您點選「取消」,系統就不會套用對應項目。

Go

如要設定應用程式以進行偵錯,您的應用程式必須是基於 Go 模組的應用程式,並在容器中設定其中一個標準 Go 執行階段環境變數 (例如 GODEBUGGOGCGOMAXPROCSGOTRACEBACK),以便系統識別出這是以 Go 為基礎的應用程式。GOTRACEBACK=single 是 Go 的預設設定,而 GOTRACEBACK=all 則是一般實用的設定。

您可以選擇 (但建議) 使用 -gcflags='all=-N -l' 選項建構應用程式,以便停用最佳化功能。為此目的,您可以使用 Skaffold Profiles 這個實用選項,並在「Build/Deploy」分頁的「Run」設定中,使用「Deployment Profile」欄位進行設定。

Python

如要設定應用程式以便進行偵錯,請確認您符合下列必要條件:

  • IDE、版本和外掛程式相容

    如要瞭解相容的 IDE、版本和外掛程式,請參閱「支援的 IDE」。

  • Skaffold 版本為 1.25.0 以上版本

    您可以讓 Cloud Code 管理依附元件,或指向本機 Skaffold 安裝。請參閱「偏好設定 > 工具 > Cloud Code > 依附元件」一節。

  • 已設定 Python 解譯器

    如果專案中未設定 Python 解譯器,偵錯作業就無法運作,因為無法執行 pydevd (基礎 Python 偵錯工具)。

    IDE 設定操作說明
    IntelliJ IDEA 如要使用 Cloud Code 進行 Python 偵錯,您必須為專案設定 Python SDK。

    依序前往「File」>「Project Structure」,然後在「Project」分頁中新增 Python SDK。如果沒有,請在「SDK」分頁中新增一個。
    PyCharm 依序前往「File」>「Settings」>「Project」>「Python Interpreter」,或在 Mac OS X 中依序前往「PyCharm」>「Preferences」>「Project」>「Python Interpreter」,然後新增 Python 解譯器。

詳情請參閱 Skaffold 偵錯說明文件

對應用程式進行偵錯

  1. 如要在 Kubernetes 叢集上以偵錯模式啟動開發週期,請按一下「在 Kubernetes 上開發」「執行動作」圖示 偵錯動作。

    在偵錯模式下啟動 Kubernetes 叢集的開發週期

    持續開發週期會在偵錯模式下啟動。

    Cloud Code 會連結偵錯工作階段:

    已連結 Kubernetes 偵錯工具

  2. 對本機程式碼偵錯的同時,您可以依照平常的方式執行所有工作,例如設定中斷點和逐步完成程式碼,只是多了對使用中的 Kubernetes 叢集進行偵錯的附加優勢。

    Kubernetes 偵錯工具工作階段

  3. 如要結束偵錯工作階段,請按一下「在 Kubernetes 上開發」執行設定旁的停止圖示。

後續步驟

取得支援

如要在 IntelliJ IDE 中提交意見回饋或回報問題,請依序前往「Tools」 >「Cloud Code」 >「Help / About」 >「Submit feedback or report an issue」,即可在 GitHub 上回報問題。