你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在启用 Azure Arc 的 Azure Stack Edge Pro GPU Kubernetes 群集上部署 Redis 支持的 PHP Guestbook 无状态应用程序

适用于:适用于 Pro GPU SKUAzure Stack Edge Pro - GPU适用于 Pro 2 SKUAzure Stack Edge Pro 2适用于 Pro R SKUAzure Stack Edge Pro R适用于 Mini R SKUAzure Stack Edge Mini R

本文介绍如何使用 Kubernetes 和 Azure Arc 生成和部署多层 Web 应用程序。此示例包含以下组件:

  • 一个单实例 Redis 主机,用于存储 guestbook 条目
  • 多个复制的 Redis 实例,用于提供读取服务
  • 多个 Web 前端实例

部署是在 Azure Stack Edge Pro 设备上已启用 Azure Arc 的 Kubernetes 群集上使用 GitOps 完成的。

此过程适用于在 Azure Stack Edge Pro 设备上查看 Kubernetes 工作负载 的人员,并熟悉 已启用 Azure Arc 的 Kubernetes(预览版)的概念。

先决条件

在部署无状态应用程序之前,请确保已在设备上完成以下先决条件以及用于访问设备的客户端:

适用于设备

  1. 你有单节点 Azure Stack Edge Pro 设备的登录凭据。

    1. 设备已激活。 请参阅 “激活设备”。
    2. 设备通过 Azure 门户配置了计算角色,并具有 Kubernetes 群集。 请参阅 “配置计算”。
  2. 已在设备上的现有 Kubernetes 群集上启用了 Azure Arc,并在 Azure 门户中有相应的 Azure Arc 资源。 有关详细步骤,请参阅 在 Azure Stack Edge Pro 设备上启用 Azure Arc

对于访问设备的客户端

  1. 你有一个 Windows 客户端系统,用于访问 Azure Stack Edge Pro 设备。

    • 客户端正在运行 Windows PowerShell 5.0 或更高版本。 若要下载最新版本的 Windows PowerShell,请转到 安装 Windows PowerShell

    • 也可使用任何其他客户端,只要安装了受支持的操作系统即可。 本文介绍使用 Windows 客户端时的过程。

  2. 已完成在 Azure Stack Edge Pro 设备上访问 Kubernetes 群集中所述的过程。 你拥有:

    • 在客户端上安装kubectl

    • 确保 kubectl 客户端版本与在 Azure Stack Edge Pro 设备上运行的 Kubernetes 主版本之间的版本差距不超过一个版本。

      • 使用 kubectl version 检查客户端上运行的 kubectl 版本。 记下完整版本。
      • 在 Azure Stack Edge Pro 设备的本地 UI 中,转到 “概述 ”并记下 Kubernetes 软件编号。
      • 验证这两个版本是否与受支持的 Kubernetes 版本中提供的映射兼容。
  3. 你有一个 GitOps 配置,可用于运行 Azure Arc 部署。 在此示例中,请使用以下 yaml 文件在 Azure Stack Edge Pro 设备上部署。

    • frontend-deployment.yaml
    • frontend-service.yaml
    • redis-master-deployment.yaml
    • redis-master-service.yaml
    • redis-replica-deployment.yaml
    • redis-replica-service.yaml

部署配置

按照以下步骤配置 Azure Arc 资源,以便通过 Azure 门户部署 GitOps 配置:

  1. 在 Azure 门户中,转到您在设备的 Kubernetes 群集中启用 Azure Arc 时创建的 Azure Arc 资源。

    转到 Azure Arc 资源

  2. 转到 “配置 ”并选择“ + 添加配置”。

    屏幕截图显示了已启用 Azure Arc 的 Kubernetes 群集,其中选择了“添加配置”。

  3. 指定 Flux 版本 1 扩展

  4. “添加 GitOps 配置”中,输入字段的相应值,然后选择“ 添加”。

    参数 Description
    配置名称 配置资源的名称。
    运算符实例名称 用于标识特定配置的操作员的实例名称。 名称是最多 253 个字符的字符串,该字符串必须为小写、字母数字、连字符和句点。
    运算符命名空间 设置为 demotestguestbook 以匹配部署 yaml中指定的命名空间。
    该字段定义安装运算符的命名空间。 名称是最多 253 个字符的字符串,该字符串必须为小写、字母数字、连字符和句点。
    存储库 URL
    Git 存储库的路径,格式为 http://github.com/username/repogit://github.com/username/repo,这是您的 GitOps 配置所在的位置。
    操作符作用域 选择 命名空间
    此参数定义安装操作员的范围。 选择 Namespace 以在部署 yaml 文件中指定的命名空间中安装操作员。
    运算符类型 保持默认设置。
    此参数指定运算符的类型 - 默认情况下,设置为 flux。
    运算符参数 将此项留空。
    此参数包含要传递给 flux 运算符的参数。
    Helm 将此复选框保留为“未选中”。
    如果要执行基于图表的部署,请启用此选项。

    添加配置

  5. 配置部署开始,“运算符状态”显示为“挂起”

    屏幕截图显示启用了 Azure Arc 的 Kubernetes 群集在刷新时处于挂起状态。

  6. 部署需要几分钟时间。 部署完成后, 操作员状态 显示为 “已安装”。

    屏幕截图显示了处于已安装状态的已启用 Azure Arc 的 Kubernetes 群集。

验证部署

通过 GitOps 配置的部署会创建一个在 git 存储库的部署文件 yaml 中指定的 demotestguestbook 命名空间。

  1. 应用 GitOps 配置后, 连接到设备的 PowerShell 接口

  2. 运行以下命令以列出与部署相对应的 demotestguestbook 命名空间中运行的 Pod。

    kubectl get pods -n <your-namespace>

    下面是一个示例输出。

    [10.128.44.240]: PS>kubectl get pods -n demotestguestbook
    NAME                            READY   STATUS    RESTARTS   AGE
    aseoperator1-5569658644-cqtb5   1/1     Running   0          91m
    frontend-6cb7f8bd65-4xb4f       1/1     Running   0          91m
    frontend-6cb7f8bd65-q9cxj       1/1     Running   0          91m
    frontend-6cb7f8bd65-xpzs6       1/1     Running   0          91m
    memcached-86bdf9f56b-5l2fq      1/1     Running   0          91m
    redis-master-7db7f6579f-2z29w   1/1     Running   0          91m
    redis-replica-7664787fbc-lgr2n    1/1     Running   0          91m
    redis-replica-7664787fbc-vlvzn    1/1     Running   0          91m
    [10.128.44.240]: PS>
    
  3. 在此示例中,前端服务已部署为 type:LoadBalancer。 需要查找此服务的 IP 地址才能查看 guestbook。 运行以下命令。

    kubectl get service -n <your-namespace>

    [10.128.44.240]: PS>kubectl get service -n demotestguestbook
    NAME           TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    frontend       LoadBalancer   10.96.79.38      10.128.44.245   80:31238/TCP   85m
    memcached      ClusterIP      10.102.47.75     <none>          11211/TCP      85m
    redis-master   ClusterIP      10.104.32.99     <none>          6379/TCP       85m
    redis-replica    ClusterIP      10.104.215.146   <none>          6379/TCP       85m
    [10.128.44.240]: PS>
    
  4. 前端服务 type:LoadBalancer 具有外部 IP 地址。 此 IP 来自你在设备上配置计算网络设置时为外部服务指定的 IP 地址范围。 使用此 IP 地址查看 guestbook URL: https://<external-IP-address>

    查看留言簿

删除部署

若要删除部署,可以从 Azure 门户删除配置。 删除配置将删除已创建的对象,包括部署和服务。

  1. 在 Azure 门户中,转到 Azure Arc 资源 > 配置。
  2. 找到要删除的配置。 选择...以调用上下文菜单并选择“ 删除”。 删除配置

可能需要几分钟时间才能删除配置。

后续步骤

了解如何 使用 Kubernetes 仪表板监视 Azure Stack Edge Pro 设备上的部署