在 Windows 開發人員電腦上透過 WSL2 設定 Linux Service Fabric 叢集
本文件涵蓋如何在 Windows 開發電腦上透過 WSL2 設定本機 Linux Service Fabric 叢集。 設定本機 Linux 叢集,對快速測試以 Linux 叢集為目標但在 Windows 電腦上開發的應用程式而言,會很有用。
必要條件
以 Linux 為基礎的 Service Fabric 叢集不會直接在 Windows 上執行,但為了啟用跨平台原型設計,我們提供了方法,讓您透過適用於 Windows 的 WSL2 (Windows 子系統 Linux 版) 在 Linux 發行版本內部署 Service Fabric 叢集。
在開始之前,您必須:
- 在 Windows 中設定 WSL2,並確定 WSL 2 為預設版本
- 在設定 WSL2 時,從 Microsoft Store 設定 Ubuntu 18.04 Linux 發行版本
提示
若要在 Windows 電腦上安裝 WSL2,請遵循 WSL2 文件中的步驟。 安裝完成後,請確實安裝 Ubuntu-18.04,使其成為您的預設發行版本,且應該讓其啟動並執行。
在 Linux 發行版本內設定 Service Fabric SDK
您無法像在標準 Linux OS 中一樣地,在 WSL2 Linux 發行版本中設定 Service Fabric。 因為 PID1 形式的 systemd 不會在 VM 內執行,因此 PID1 形式的 systemd 是讓 SF SDK 能夠成功運作的必要條件。 為了啟用 PID1 形式的 systemd,我們採用 systemd-genie 來作為因應措施。 如需 systemd-genie 的詳細資訊,請參閱 systemd genie 設定。指令碼安裝和手動安裝步驟會說明如何安裝 systemd-genie 和 Service Fabric SDK。
指令碼安裝
為了方便起見,提供的指令碼會隨著 sfctl CLI 安裝 Service Fabric 通用 SDK。 執行指令碼,即表示您同意所要安裝之所有軟體的授權。 或者,您可以在下一節中執行手動安裝步驟,這會顯示相關聯的授權和所安裝的元件。
指令碼執行成功之後,您可以跳到設定本機叢集。
sudo curl -s https://raw.githubusercontent.com/Azure/service-fabric-scripts-and-templates/master/scripts/SetupServiceFabric/SetupServiceFabric.sh | sudo bash
手動安裝
若要手動安裝 Service Fabric 執行階段和通用 SDK,請遵循本指南的其餘部分。
開啟終端機。
登入 WSL2 Linux 發行版本
如 systemd genie 設定所述地設定 systemd-genie (如果已設定好 systemd-genie,則可以跳至下一個步驟)
使用 genie -s 進入 genie 命名空間
在 genie 命名空間內,也可以依照設定 Linux 本機叢集中的指令碼安裝或手動安裝步驟所述來安裝 SF SDK
在 /etc/sudoers 中建立項目 (
<USERNAME\> ALL = (ALL) NOPASSWD:ALL
),向目前的使用者提供 sudo 權限
設定本機叢集
建議讓 Service Fabric 位於 WSL2 VM 內以便從主機視窗進行管理
在 Windows 主機中安裝 Service Fabric SDK (6.0 版或更新版本)
在 Windows 中,您可以使用 SF SDK 中提供的 ServiceFabricLocalClusterManager 工具來管理叢集
只有在符合下列條件時,才會啟用管理 Linux 本機叢集的選項:a. WSL2 VM 正在執行,b. Systemd-genie、servicefabricruntime 和 servicefabricsdkcommon 套件正確地安裝在 VM 內,以及 c. Systemd-genie 處於執行中狀態。 您可以透過此工具來設定或切換至 Linux 本機叢集。
設定 Linux 叢集的另一種方式是,使用 SF SDK 中提供的叢集設定指令碼進行部署。
開啟網頁瀏覽器,然後前往 Service Fabric Explorer
http://localhost:19080
。 叢集啟動時,您會看見 Service Fabric Explorer 儀表板。 叢集可能需要數分鐘的時間才能設定好。 如果您的瀏覽器無法開啟 URL,或 Service Fabric Explorer 未顯示叢集,請稍候幾分鐘,然後再試一次。 您也可以在 SF SDK 中提供的 ServiceFabricExplorer 內看到叢集。叢集啟動並執行後,您就可以在 PowerShell 和 Visual Studio 中連線到本機叢集。
使用自訂的 ServiceFabric 和 ServieFabricSdkCommon Debian 套件進行手動安裝
如需從自訂或已下載的 debian 套件手動安裝 Service Fabric,請遵循本指南的其餘部分。
開啟終端機。
登入 WSL2 Linux 發行版本
複製設定檔案
sudo curl -s https://raw.githubusercontent.com/Azure/service-fabric-scripts-and-templates/master/scripts/SetupServiceFabric/SetupServiceFabric.sh > SetupServiceFabric.sh
- 讓該檔案成為可執行檔
sudo chmod +x SetupServiceFabric.sh
- 使用本機 debian 套件路徑來執行設定指令碼。 請確定所提供的路徑有效。 範例如下:
sudo ./SetupServiceFabric.sh --servicefabricruntime=/mnt/c/Users/testuser/Downloads/servicefabric.deb --servicefabricsdk=/mnt/c/Users/testuser/Downloads/servicefabric_sdkcommon.deb
已知限制
在 Linux 發行版本內執行的本機叢集已知有下列限制:
- 目前僅支援 Ubuntu-18.04 發行版本。
- 若要順暢地體驗本機叢集管理員和 Visual Studio,建議您從 Windows 主機中的 PowerShell 指令碼或 LocalClusterManager 來管理叢集。
常見問題集
SF 本機叢集設定支援哪些 Linux 發行版本?
Linux 本機叢集目前僅支援 Ubuntu-18.04。Windows 和 Linux SF 叢集是否可以與 WSL2 設定平行執行?
不行,一次只能在主機或客體 VM 中執行一個本機叢集。如何部署一個節點的 Linux 本機叢集?
您可以從功能表選項的 [本機叢集管理員] 部署一個節點或五個節點的 Linux 本機叢集。 從設定指令碼進行部署時,預設會部署五個節點的叢集,如果是一個節點的叢集,則應該傳遞 CreateOneNodeCluster。如何在 PowerShell 和 Visual Studio 中連線到 Linux 本機叢集?
如果 Linux 本機叢集已啟動並執行,則 connect-servicefabriccluster Cmdlet 應該會自動連線到此叢集。 同樣地,Visual Studio 也會自動偵測此本機叢集。 您也可以在 PowerShell 或 Visual Studio 中提供叢集端點以連線到此叢集。Linux 本機叢集的 SF 叢集資料位於何處?
如果使用的是 Ubuntu-18.04 發行版本,SF 資料會位於 Windows 主機的 \wsl$\Ubuntu-18.04\home\sfuser\sfdevcluster。