搭配使用 Bridge to Kubernetes 與 AKS
在本教學課程中,您會使用特定 AKS 範例微服務 Web 應用程式,了解如何使用 Bridge to Kubernetes 在屬於 Azure Kubernetes Service (AKS) 叢集的單一 Pod 進行本機偵錯。
開始之前
本指南使用 Todo 應用程式範例應用程式示範將開發電腦連線到在 AKS 中執行的 Kubernetes 叢集。 如果您已經在 Kubernetes 叢集上執行自己的應用程式,請參閱使用 Kubernetes 開發。 如果您使用另一個叢集,例如在本機執行的 MiniKube,請參閱搭配範例使用 Bridge to Kubernetes。
必要條件
- Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,您可以建立免費帳戶。
- Azure CLI 已安裝。
- 在 macOS、Windows 10 或 Linux 上執行的 Visual Studio Code。
- Bridge to Kubernetes 延伸模組安裝在 Visual Studio Code 中。
建立 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 節點,然後選擇 [使用命名空間] 。
接下來,設定橋接器:開啟命令選擇區 (CTRL+SHIFT+P 或在 Mac 上為 Cmd+Shift+P),然後輸入 Bridge to Kubernetes。 選取 [Bridge to Kubernetes:設定] 選項。
系統會提示您設定想要取代的服務、要從開發電腦轉送的連接埠,以及要使用的啟動工作。
選擇 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 的開發電腦。
透過您稍早找到的外部 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 的運作方式。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應