在 Windows 开发人员计算机上通过 WSL2 设置 Linux Service Fabric 群集
本文档介绍如何在 Windows 开发计算机上通过 WSL2 设置本地 Linux Service Fabric 群集。 设置本地 Linux 群集有助于快速测试在 Windows 计算机上开发的面向 Linux 群集的应用程序。
基于 Linux 的 Service Fabric 群集不会直接在 Windows 上运行,但为了启用跨平台原型制作,我们提供了一种方法,通过 Windows 的 WSL2(适用于 Linux 的 Windows 子系统)在 Linux 分发版中部署 Service Fabric 群集。
准备事项:
- WSL2 在 Windows 中设置,并确保 WSL 2 作为默认版本
- 设置 WSL2 时,从 Microsoft Store 设置 Ubuntu 18.04 Linux 分发版
提示
若要在 Windows 计算机上安装 WSL2,请按 WSL2 文档中的步骤操作。 安装后,请确保安装 Ubuntu-18.04,使其成为默认分发版,并且应启动并运行。
无法像在标准 Linux OS 中那样在 WSL2 Linux 分发版中完成 Service Fabric 设置。 因为 systemd as PID1 不在 VM 内部运行,而 systemd as PID1 是 SF SDK 成功运行的先决条件。 若要启用 systemd as PID1,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 权限
建议从主机窗口管理 WSL2 VM 内的 Service Fabric
在 Windows 主机中安装 Service Fabric SDK(6.0 或更高版本)
在 Windows中,可以使用作为 SF SDK 的一部分提供的 ServiceFabricLocalClusterManager 工具来管理群集
仅当 a 时启用用于管理 Linux 本地群集的选项。 WSL2 VM 正在运行,b。 Systemd-genie、servicefabricruntime 和 servicefabricsdkcommon 包在 VM 和 c 中正确安装。 Systemd-genie 处于运行状态。 可以从此工具设置或切换到 Linux 本地群集。
设置 Linux 群集的另一种方法是使用作为 SF SDK 一部分提供的群集设置脚本进行部署。
打开 Web 浏览器,转到 Service Fabric Explorer
http://localhost:19080
。 群集启动后,可以看到 Service Fabric Explorer 仪表板。 群集设置可能需要几分钟时间。 如果浏览器无法打开该 URL 或者 Service Fabric Explorer 未显示群集,请等待几分钟,然后重试。 还可以在 SF SDK 中提供的 ServiceFabricExplorer 中看到群集。群集启动并运行后,可以在 PowerShell 中连接到本地群集和Visual Studio。
若要从自定义或下载的 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 中提供群集终结点来连接此群集。SF 群集数据位于 Linux 本地群集的哪个位置?
如果使用 Ubuntu-18.04 分发版,则 SF 数据位于 Windows 主机中的 \wsl$\Ubuntu-18.04\home\sfuser\sfdevcluster。