在 Service Fabric 网格应用程序中装载高度可用的基于 Service Fabric Reliable Disk 的卷

重要

Azure Service Fabric 网格的预览版已停用。 不允许再通过 Service Fabric 网格 API 进行新的部署。 对现有部署的支持将会持续到 2021 年 4 月 28 日。

有关详细信息,请参阅 Azure Service Fabric 网格预览版停用

使用容器应用保存状态的常用方法是使用远程存储,例如 Azure 文件存储或 Azure Cosmos DB 等数据库。 这会对远程存储造成长时间读取和写入网络延迟。

本文介绍如何通过将卷装载到 Service Fabric 网格应用程序的容器以在高度可用的 Service Fabric Reliable Disk 中存储状态。 Service Fabric Reliable Disk 为 Service Fabric 群集中复制的本地读取和写入操作提供卷以实现高可用性。 这会删除读取的网络调用并降低写入的网络延迟。 如果容器重新启动或移动到另一个节点,新容器实例会将同一个卷视为旧卷。 因此,它既高效又高度可用。

在此示例中,计数器应用程序的 ASP.NET Core 服务有一个网页,该网页在浏览器中显示计数器值。

counterService 定期从文件读取计数器值,使该值递增并重新写入文件。 文件存储在由 Service Fabric Reliable Disk 备份的卷上装载的文件夹中。

先决条件

可以使用 Azure Cloud Shell 或 Azure CLI 的本地安装完成此任务。 若要在本文中使用 Azure CLI,请确保 az --version 至少返回 azure-cli (2.0.43)。 遵照这些说明安装(或更新)Azure Service Fabric 网格 CLI 扩展模块。

登录 Azure

登录到 Azure 并设置订阅。

az login
az account set --subscription "<subscriptionID>"

创建资源组

创建要将应用程序部署到其中的资源组。 以下命令在美国东部位置创建名为 myResourceGroup 的资源组。 如果更改以下命令中的资源组名称,请记得在之后的所有命令中进行更改。

az group create --name myResourceGroup --location eastus

部署模板

注意

自 2020 年 11 月 2 日起,下载速率限制将应用于 Docker 免费计划帐户对 Docker Hub 发出的匿名和经过身份验证的请求,并且由 IP 地址强制执行。

该模板使用 Docker Hub 中的公共映像。 请注意,速率可能会受到限制。 有关更多详细信息,请参阅通过 Docker Hub 进行身份验证

以下命令使用 counter.sfreliablevolume.linux.json 模板部署 Linux 应用程序。 若要部署 Windows 应用程序,请使用 counter.sfreliablevolume.windows.json 模板。 请注意,较大的容器映像可能需要花费较长的时间进行部署。

az mesh deployment create --resource-group myResourceGroup --template-uri https://raw.githubusercontent.com/Azure-Samples/service-fabric-mesh/master/templates/counter/counter.sfreliablevolume.linux.json

还可以使用以下命令查看部署的状态

az deployment group show --name counter.sfreliablevolume.linux --resource-group myResourceGroup

请注意资源类型为 Microsoft.ServiceFabricMesh/gateways 的网关资源的名称。 这将用于获取应用的公共 IP 地址。

打开应用

成功部署应用程序后,将获取应用的网关资源的 IP 地址。 使用上述部分中提到的网关名称。

az mesh gateway show --resource-group myResourceGroup --name counterGateway

输出应具有属性 ipAddress,即服务终结点的公共 IP 地址。 在浏览器中打开它。 它会显示一个网页,其中的计数器值每秒更新。

验证应用程序能够使用卷

应用程序在 counter/counterService 文件夹的卷中创建名为 counter.txt 的文件。 此文件的内容是在网页上显示计数器值。

删除资源

请经常删除 Azure 中不再使用的资源。 若要删除与此示例相关的资源,请使用以下命令删除其中部署了它们的资源组(这会删除与该资源组关联的所有内容):

az group delete --resource-group myResourceGroup

后续步骤