共用方式為


搭配範例使用 Bridge to Kubernetes

注意

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

此範例說明如何使用 Bridge to Kubernetes 在任何 Kubernetes 叢集上開發簡單 TODO 應用程式的微服務版本。 此範例使用 Visual Studio Code,已從 TodoMVC所提供的程式代碼進行調整。 在此範例中,我們使用MiniKube來裝載應用程式,但這些步驟應該與任何 Kubernetes 叢集搭配使用。

TODO 應用程式範例是由前端和提供永續性記憶體的後端所組成。 此擴充範例會新增統計數據元件,並將應用程式分成數個微服務,特別是:

  • 前端會呼叫 database-api 來保存及更新 TODO 專案;
  • 資料庫 API 服務依賴 Mongo 資料庫來保存 TODO 專案;
  • 前端會將新增、完成和刪除事件寫入RabbitMQ佇列;
  • 統計數據工作者會從 RabbitMQ 佇列接收事件,並更新 Redis 快取;
  • 統計數據 API 會將快取的統計數據揭露給前端顯示。

畢竟,這個擴充的 TODO 應用程式是由六個相互關聯的元件所組成。

先決條件

  • 任何 Kubernetes 叢集,或使用 Chocolatey 套件管理員來安裝 MiniKube
  • 在 Windows 10 上,Hyper-V
  • Kubectl 已安裝並且在您選擇的指令行環境的路徑中
  • Bridge to Kubernetes Visual Studio Code 擴充功能

安裝 MiniKube

您可以使用任何 Kubernetes 提供者搭配 Bridge to Kubernetes。 在本文中,我們使用 MiniKube。 MiniKube 是輕量型 Kubernetes 提供者,可讓您在本機計算機上裝載 Kubernetes。 請遵循 安裝指示 在 Windows 10、Linux 或 macOS 上安裝 MiniKube。

為了在 Windows 10 上取得最佳結果,您應該使用 Hyper-V VM 管理員,並在 建立虛擬交換器。

安裝之後,啟動 MiniKube、指定使用 Hyper-V,並提供主要虛擬交換器的名稱。 此命令必須從具有系統管理員許可權的命令提示字元執行。

minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"

部署應用程式

Bridge to Kubernetes 版本庫 的內容複製,並在目前工作資料夾中開啟命令視窗,其工作資料夾設置為 todo-app

建立範例的命名空間。

kubectl create namespace todo-app

然後,套用部署指令清單:

kubectl apply -n todo-app -f deployment.yaml

這是一個簡單的部署,透過類型為 LoadBalancer的服務來公開前端。 等候所有 Pod 啟動完成,並讓 frontend 服務的外部 IP 可供使用。

如果您要使用 MiniKube 進行測試,則必須使用 minikube tunnel 來解析外部 IP。

kubectl get services -n todo-app

NAME          TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
frontend      LoadBalancer   10.0.49.177    127.0.0.1   80:30145/TCP   18h

請使用外部IP和本地端口訪問應用程式(PORT(S)資料行中的第一個數位)。

http://{external-ip}:{local-port}

在瀏覽器中測試執行中的應用程式。 當您新增、完成和刪除 todo 項目時,請注意統計頁面會根據預期的計量進行更新。

偵錯 stats-api 服務

您現在可以使用 Bridge to Kubernetes 擴充功能來示範如何將來自 Kubernetes 叢集的流量重新導向至本機執行的 stats-api 版本。

cd stats-api/

在 VS Code 中開啟 stats-api 的原始程式碼。

code .

VS Code 啟動之後,請從 VS Code 的左側提要字段開啟 Kubernetes 窗格,然後選取 MiniKube 叢集中的 todo-app 命名空間。 以滑鼠右鍵按下 todo-app 節點,然後選擇 [使用名稱空間]

選取命名空間

在終端機視窗中執行 npm install 來安裝相依性 (CTRL + ~)。

npm install

接下來,在 server.js的第 17 行上放置斷點。

開啟命令選擇區 (CTRL+SHIFT+PCmd+Shift+Mac 上的 P),然後輸入 Bridge to Kubernetes。 選取 [Bridge to Kubernetes:設定] 選項。

Bridge to Kubernetes:設定命令

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

選擇 stats-api 服務。

選取要連線至 的服務

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

輸入埠號碼

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

選擇調試程序啟動工作

您可以選擇執行隔離模式或非隔離模式。 如果您以獨立運行的方式執行,則您的請求會被路由到本機進程;其他開發人員可以使用叢集,而不會受到影響。 如果您沒有獨立運行,所有流量都會重新導向至本機程序。 如需關於此選項的更多資訊,請參閱 使用路由功能進行隔離開發。 在此範例中,讓我們使用非隔離。

選擇隔離

注意

VS Code 會提示您允許 EndpointManager 以提高的權限運行並修改 hosts 文件。

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

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

選擇偵錯啟動配置檔

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

使用 Bridge to Kubernetes 進行偵錯

導航至待辦事項應用程式的前端入口。 針對 minikube,我們將使用 127.0.0.1。 若要存取您應用程式的本機端點 URL,請開啟狀態列上的 [Kubernetes] 選單,然後選擇端點專案。

選擇 統計數據 連結,向 stats-api 發送請求。

運行網站 - 選擇狀態連結

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

按下播放鍵,讓請求無縫地繼續進行。

此範例只是如何在非 AKS 叢集上使用 Bridge to Kubernetes 的其中一個圖例。 接下來,請在您自己的專案上試試看!

清理

若要清除此範例所產生的資產,請執行:

kubectl delete namespace todo-app

後續步驟

您也可以使用 Bridge to Kubernetes 將應用程式部署至 Azure Kubernetes Service (AKS)。 請參閱 使用 Bridge to Kubernetes 搭配 AKS