共用方式為


搭配 AKS 使用 Bridge to Kubernetes

注意

Bridge to Kubernetes 將於 2025 年 4 月 30 日淘汰。 如需淘汰和開放原始碼替代方案的詳細資訊,請參閱 GitHub 問題

在本教學指南中,您將使用特定的 AKS 範例微服務 Web 應用程式,學習如何利用 Bridge to Kubernetes 在 Azure Kubernetes Service (AKS) 叢集中的單一 Pod 進行本機除錯。

開始之前

本指南使用 Todo 應用程式範例應用程式來示範將開發電腦連線到 AKS 中執行的 Kubernetes 叢集。 如果您已經在 Kubernetes 叢集上執行自己的應用程式,請參閱 使用 Kubernetes 開發。 如果您使用另一個叢集,例如在本機執行的 MiniKube,請參閱 使用 Bridge to Kubernetes 搭配範例

先決條件

建立 Kubernetes 叢集

支援的區域建立AKS 叢集。 下列命令會建立名為 MyResourceGroup 的資源群組,以及名為 MyAKS的 AKS 叢集。

az group create \
    --name MyResourceGroup \
        --location eastus
az aks create \
    --resource-group MyResourceGroup \
    --name MyAKS \
    --location eastus \
    --node-count 3 \
    --generate-ssh-keys

安裝範例應用程式

下載程式代碼並安裝相依性

git clone https://github.com/hsubramanianaks/b2k-samples
cd b2k-samples/todo-app
npm install stats-api\

線上到您的叢集並部署應用程式

在您的開發計算機上,下載並設定 Kubernetes CLI,以使用 az aks get-credentials連線到 Kubernetes 叢集。

az aks get-credentials --resource-group MyResourceGroup --name MyAKS
kubectl create namespace todo-app
kubectl config set-context --current --namespace=todo-app
kubectl apply -f deployment.yaml --namespace todo-app

試用應用程式

在先前使用的相同終端機上,執行下列命令,並在 [外部IP]資料行底下複製前端服務的IP。

kubectl get services

若要試用應用程式,請開啟url:{your external IP from above command goes here}.nip.io

偵錯 stats-api 服務

在先前使用的相同終端機上,輸入下列命令以在 VS Code 中開啟 stats-api。

code ./stats-api

首先,將斷點放在第 17 行的 server.js中。

然後,請確定 todo-app 叢集中的 MyAKS 命名空間已設定為預設值(如果其旁邊有 * )。 如果未設定為預設值,請以滑鼠右鍵按兩下 [todo-app] 節點,然後選擇 [使用命名空間]

顯示 Bridge to Kubernetes 命名空間的螢幕快照。

接下來,設定網橋:開啟命令面板(CTRL+SHIFT+P 或在 Mac 上按 Cmd+Shift+P),然後輸入 Bridge to Kubernetes。 選取 [網橋至 Kubernetes:設定] 選項。

顯示 Bridge to Kubernetes Configure 命令視窗的螢幕快照。

系統會提示您設定您想要取代的服務、要從開發電腦轉送的埠,以及要使用的啟動工作。

選擇 stats-api 服務。

顯示選取要連線至視窗之服務的螢幕快照。

重要

您只能重新導向具有單一 Pod 的服務。

選取服務之後,系統會提示您輸入本機應用程式的 TCP 連接埠。 在此範例中,輸入 3001。

顯示輸入埠號碼視窗的螢幕快照。

選擇 [執行腳本:開發 作為啟動工作。

顯示 [選擇調試程序啟動任務] 視窗的螢幕快照。

您可以選擇執行隔離模式或未隔離模式。 如果您在隔離模式中運行,則只會將請求路由至本地程序,其他開發人員可以使用集群,而不會受到影響。 如果您未執行隔離,所有流量將重新導向至您的本機處理程序。 如您您需要此選項的詳細資訊,請參閱 使用路由功能進行隔離開發。 在此範例中,我們會採用非隔離方式。 如果您選擇隔離,task.json 具有應該用來將要求路由傳送至電腦的前綴。

顯示 [選擇隔離選項] 視窗的螢幕快照。

注意

在後續的啟動時,您只需按下偵錯圖示,而無需經過此設定,也不會被要求填寫服務名稱、埠、啟動任務或是否要執行隔離。 這些值會儲存在 .vscode/tasks.json中。 若要稍後變更這些設定,請開啟命令選擇區(CTRL+SHIFT+PCmd+Shift+Mac 上的 P],然後執行命令 Bridge to Kubernetes:設定

已成功設定 Bridge to Kubernetes 偵錯配置檔。

若要開始偵錯,請選擇左側的 [偵錯] 圖示,然後選取 [執行腳本:使用 Kubernetes 開發]。 按下 [執行文稿:使用 Kubernetes 進行開發] 旁的 [開始] 按鈕,

顯示選擇 [偵錯啟動設定檔] 視窗的螢幕快照。

注意

系統會提示您允許 EndpointManager 以管理員權限運行並修改 hosts 檔案。

當 VS Code 狀態列變成橙色且 Kubernetes 擴充功能顯示您已連線時,您的開發電腦就會連線。 一旦開發計算機連線,流量就會開始重新導向至您正在取代之 stats-api 的開發計算機。

螢幕快照:顯示 [使用 Bridge to Kubernetes] 視窗選擇偵錯的螢幕快照。

透過您稍早找到的外部 IP,瀏覽至應用程式的前端進入點,{your external IP from get services command}.nip.io。 請注意,如果您選擇隔離模式,則必須使用 {your prefix - can be found in task.json}.{your external IP from get services command}.nip.io

要向 stats-api 提出要求,請選擇 統計數據 連結。

顯示選擇執行中網站的螢幕快照 - 選擇狀態連結。

請注意,最初在叢集中啟動的流量會重新導向至觸發斷點的本機執行版本(在叢集外部)。

請按播放,讓請求可以無縫地持續進行。

收拾

當您停止調試程式時,會還原叢集的所有變更。 請注意,如果您是在啟用隔離的情況下執行,那麼路由管理員 Pod 會被保留在那裡,以便於下次加速調試程序的啟動。

您可以讓 AKS 叢集保持開啟,以供日後偵錯,或使用下列命令加以刪除。

az aks delete --name MyAKS --resource-group MyResourceGroup

後續步驟

若要了解更多關於 Bridge to Kubernetes 的資訊,請參閱 Bridge to Kubernetes 的運作方式