快速入门:将 Linux 容器部署到 Service Fabric

Azure Service Fabric 是一款分布式系统平台,可用于部署和管理可缩放的可靠微服务和容器。

本快速入门介绍如何将 Linux 容器部署到 Service Fabric 群集。 完成后,Service Fabric 群集中会运行一个由 Python Web 前端和 Redis 后端组成的 Voting 应用程序。 此外还介绍如何对群集中的应用程序进行故障转移和缩放。

Voting 应用网页

在本快速入门中,请在本地 Shell 中使用 Bash 环境来运行 Service Fabric CLI 命令。 如果没有 Azure 订阅,可在开始前创建一个试用帐户

如果选择在本地安装并使用命令行接口 (CLI),请确保运行 Azure CLI 2.0.4 或更高版本。 若要查找版本,请运行 az --version。 如果需要进行安装或升级,请参阅安装 Azure CLI 2.0

Note

在 Azure 中国区使用 Azure CLI 之前,请先运行 az cloud set -n AzureChinaCloud 来改变云环境。如果想切回国际版 Azure,请再次运行 az cloud set -n AzureCloud

获取应用程序包

若要将容器部署到 Service Fabric,需要一组描述各个容器以及应用程序的清单文件(应用程序定义)。

在本地 Shell 中,使用 git 克隆一份应用程序定义,然后将目录更改为克隆中的 Voting 目录。

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/Voting

创建 Service Fabric 群集

若要将应用程序部署到 Azure,需要通过 Service Fabric 群集来运行该应用程序。 该群集使用单个自签名证书来确保节点到节点和客户端到节点的安全。

若要了解如何创建自己的群集,请参阅在 Azure 上创建 Service Fabric 群集

Note

如果创建自己的群集,请注意,Web 前端服务配置为侦听端口 80 上是否有传入流量。 请确保此端口在群集中处于打开状态。

配置环境

Service Fabric 提供多种可以用来管理群集及其应用程序的工具:

  • Service Fabric Explorer,一种基于浏览器的工具。
  • Service Fabric 命令行界面 (CLI),在 Azure CLI 2.0 基础上运行。
  • PowerShell 命令。

为 Service Fabric Explorer 配置证书

若要使用 Service Fabric Explorer,需要将从门户网站下载的证书 PFX 文件导入到证书存储(Windows 或 Mac)中,或者导入到浏览器本身 (Ubuntu) 中。

请使用最熟悉的方法将证书导入到系统中。 例如:

  • 在 Windows 上:双击 PFX 文件,按提示在个人存储 Certificates - Current User\Personal\Certificates 中安装证书。 也可以使用自述文件说明中的 PowerShell 命令。
  • 在 Mac 上:双击 PFX 文件,按提示在 Keychain 中安装证书。
  • 在 Ubuntu 上:Mozilla Firefox 是 Ubuntu 16.04 中的默认浏览器。 若要将证书导入 Firefox,请单击浏览器右上角的菜单按钮,然后单击“选项”。 在“首选项”页上,使用搜索框搜索“证书”。 单击“查看证书”,选择“你的证书”选项卡,单击“导入”,然后按提示导入证书。

    在 Firefox 上安装证书

部署 Service Fabric 应用程序

  1. 在本地 Shell 中,使用 CLI 连接到 Azure 中的 Service Fabric 群集。

    sfctl cluster select --endpoint https://linh1x87d1d.chinanorth.cloudapp.chinacloudapi.cn:19080
    
  2. 使用安装脚本将 Voting 应用程序定义复制到群集,注册应用程序类型,并创建应用程序的实例。

    ./install.sh
    
  3. 打开 Web 浏览器,导航到群集的 Service Fabric Explorer 终结点。 终结点的格式如下:https://<my-azure-service-fabric-cluster-url>:19080/Explorer,例如 https://linh1x87d1d.chinanorth.cloudapp.chinacloudapi.cn:19080/Explorer

  4. 展开“应用程序”节点,可以看到 Voting 应用程序类型的条目以及创建的实例。

    Service Fabric Explorer

  5. 若要连接到正在运行的容器,请打开 Web 浏览器,导航到群集的 URL,例如 http://linh1x87d1d.chinanorth.cloudapp.chinacloudapi.cn:80。 浏览器中应会显示该投票应用程序。

    Voting 应用网页

Note

也可使用 Docker Compose 来部署 Service Fabric 应用程序。 例如,可以使用 Docker Compose 通过以下命令在群集上部署和安装应用程序。

sfctl compose create --deployment-name TestApp --file-path ../docker-compose.yml

故障转移群集中的容器

Service Fabric 可确保在发生故障时,将容器实例自动转移到群集中的其他节点。 也可以手动清空容器的节点,然后将其正常转移到群集中的其他节点。 Service Fabric 提供多种缩放服务的方式。 在以下步骤中,请使用 Service Fabric Explorer。

若要故障转移前端容器,请执行以下步骤:

  1. 在群集中打开 Service Fabric Explorer,例如 https://linh1x87d1d.chinanorth.cloudapp.chinacloudapi.cn:19080/Explorer
  2. 在树视图中单击“fabric:/Voting/azurevotefront”节点,展开分区节点(以 GUID 表示)。 注意树视图中的节点名称,它显示了当前正在运行容器的节点,例如 _nodetype_4
  3. 在树视图中展开“节点”节点。 单击正在运行容器的节点旁边的省略号 (...)。
  4. 选择“重启”以重启该节点,并确认重启操作。 重启会导致容器故障转移到群集中的另一个节点。

    Service Fabric Explorer 中的“节点”视图

在群集中缩放应用程序和服务

可以跨群集轻松缩放 Service Fabric 服务,以适应服务上的负载。 可以通过更改群集中运行的实例数量来缩放服务。

若要缩放 Web 前端服务,请按照以下步骤操作:

  1. 在群集中打开 Service Fabric Explorer,例如 https://linh1x87d1d.chinanorth.cloudapp.chinacloudapi.cn:19080
  2. 在树视图中单击“fabric:/Voting/azurevotefront”节点旁边的省略号(三个点),选择“缩放服务”。

    Service Fabric Explorer 缩放服务开始

    现在可以缩放 Web 前端服务的实例数量。

  3. 将数字更改为 2,再单击“缩放服务”。

  4. 在树视图中单击“fabric:/Voting/azurevotefront”节点,展开分区节点(以 GUID 表示)。

    Service Fabric Explorer 缩放服务完成

    现在可以看到该服务有两个实例。 在树视图中,可以看到运行实例的节点。

通过这一简单的管理任务,你已让前端服务用来处理用户负载的资源数量翻了一番。 有必要了解的是,服务无需多个实例便能可靠运行。 如果服务出现故障,Service Fabric 可确保在群集中运行新的服务实例。

清理资源

  1. 使用模板中提供的卸载脚本 (uninstall.sh) 从群集中删除应用程序实例并取消注册应用程序类型。 此脚本需要一定的时间来清理实例,因此不应在运行此脚本后立即运行 install script。 可以使用 Service Fabric Explorer 来确定实例何时已删除以及应用程序类型何时已取消注册。

    ./uninstall.sh
    
  2. 如果群集已使用完毕,则可从证书存储中删除证书。 例如:

    • 在 Windows 上:使用“证书”MMC 管理单元。 在添加管理单元时,确保选择“我的用户帐户”。 导航到 Certificates - Current User\Personal\Certificates,然后删除证书。
    • 在 Mac 上:使用 Keychain 应用。
    • 在 Ubuntu 上:按照查看证书时所使用的步骤删除此证书。 ## 后续步骤

在本快速入门中,你已将 Linux 容器应用程序部署到 Azure 中的 Service Fabric 群集,在应用程序上执行了故障转移,并在群集中缩放了应用程序。 若要详细了解如何在 Service Fabric 中使用 Linux 容器,请继续学习适用于 Linux 容器应用的教程。