搭配 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 搭配範例。
先決條件
- Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,您可以建立 免費帳戶。
- Azure CLI 已安裝。
- 在 macOS、Windows 10 或 Linux 上執行的 Visual Studio Code。
- Bridge to Kubernetes extension install in 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
首先,將斷點放在第 17 行的 server.js
中。
然後,請確定 todo-app
叢集中的 MyAKS
命名空間已設定為預設值(如果其旁邊有 * )。 如果未設定為預設值,請以滑鼠右鍵按兩下 [todo-app] 節點,然後選擇 [使用命名空間] 。
接下來,設定網橋:開啟命令面板(CTRL+SHIFT+P 或在 Mac 上按 Cmd+Shift+P),然後輸入 Bridge to Kubernetes。 選取 [網橋至 Kubernetes:設定] 選項。
系統會提示您設定您想要取代的服務、要從開發電腦轉送的埠,以及要使用的啟動工作。
選擇 stats-api
服務。
重要
您只能重新導向具有單一 Pod 的服務。
選取服務之後,系統會提示您輸入本機應用程式的 TCP 連接埠。 在此範例中,輸入 3001。
選擇 [執行腳本:開發 作為啟動工作。
您可以選擇執行隔離模式或未隔離模式。 如果您在隔離模式中運行,則只會將請求路由至本地程序,其他開發人員可以使用集群,而不會受到影響。 如果您未執行隔離,所有流量將重新導向至您的本機處理程序。 如您您需要此選項的詳細資訊,請參閱 使用路由功能進行隔離開發。 在此範例中,我們會採用非隔離方式。 如果您選擇隔離,task.json 具有應該用來將要求路由傳送至電腦的前綴。
注意
在後續的啟動時,您只需按下偵錯圖示,而無需經過此設定,也不會被要求填寫服務名稱、埠、啟動任務或是否要執行隔離。 這些值會儲存在 .vscode/tasks.json
中。 若要稍後變更這些設定,請開啟命令選擇區(CTRL+SHIFT+P 或 Cmd+Shift+Mac 上的 P],然後執行命令 Bridge to Kubernetes:設定。
已成功設定 Bridge to Kubernetes 偵錯配置檔。
若要開始偵錯,請選擇左側的 [偵錯] 圖示,然後選取 [執行腳本:使用 Kubernetes 開發]。 按下 [執行文稿:使用 Kubernetes 進行開發] 旁的 [開始] 按鈕,。
注意
系統會提示您允許 EndpointManager 以管理員權限運行並修改 hosts 檔案。
當 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 的運作方式。