搭配使用 Bridge to Kubernetes 與 AKS

在本教學課程中,您會使用特定 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

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

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

顯示 Bridge to Kubernetes 命名空間的螢幕擷取畫面。

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

顯示 Bridge to Kubernetes Configure 命令視窗的螢幕擷取畫面。

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

選擇 stats-api 服務。

顯示 [選取要連接的服務] 視窗的螢幕擷取畫面。

重要

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

選取服務之後,系統會提示您輸入本機應用程式的 TCP 通訊埠。 針對此範例,輸入 3001。

顯示 [輸入連接埠號碼] 視窗的螢幕擷取畫面。

選擇 [執行指令碼:開發] 作為啟動工作。

顯示 [選擇偵錯工具啟動工作] 視窗的螢幕擷取畫面。

您可以選擇執行隔離或不隔離。 如果您執行隔離,則只會將要求路由傳送至本機處理序;其他開發人員可以使用叢集,而不會受到影響。 如果您沒有執行隔離,所有流量都會重新導向至本機處理序。 如需此選項的詳細資訊,請參閱使用路由功能進行隔離開發。 針對此範例,我們會以非隔離繼續進行。 如果您選擇隔離,則 task.json 具有您應該用於將要求路由至電腦的前置詞。

顯示 [選擇隔離] 選項視窗的螢幕擷取畫面。

注意

在後續啟動時,您只要按一下偵錯圖示,不需要進行整個設定並且讓系統提示您輸入服務名稱、連接埠、啟動工作,或是否要以隔離形式執行。 這些值會儲存在 .vscode/tasks.json 中。 若要稍後變更這些設定,請開啟命令選擇區 (CTRL+SHIFT+P 或 Mac 上的 Cmd+Shift+P),然後執行命令 Bridge to Kubernetes: Configure

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

若要開始偵錯,請選取左側的 [偵錯] 圖示,然後選取 [執行指令碼:使用 Kubernetes 開發]。 按一下 [執行指令碼:使用 Kubernetes 開發] 旁的開始按鈕。

顯示 [選擇偵錯啟動設定檔] 視窗的螢幕擷取畫面。

注意

系統會提示您允許 EndpointManager 執行提升權限並修改主機檔案。

當 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 的運作方式