练习 - 在 Azure 门户中部署规模集

已完成

在示例场景中,你决定使用规模集为运输公司运行 Web 应用程序。 运输公司可以借助规模集在工作负载不断变化时维持较短的用户请求响应时间。

第一个任务是创建规模集。 将其配置为运行 Web 服务器,在本例中为 nginx。 正确配置规模集后,部署 Web 应用程序。 然后,设置一个运行状况探测,以供 Azure 用于验证规模集中每个虚拟机 (VM) 的可用性。 最后,从 Web 浏览器发送请求,测试该规模集。

注意

本练习为选做练习。 如果还没有 Azure 帐户,可以阅读说明,以便了解如何使用 REST API 检索指标。

如果想要完成此练习,但没有 Azure 订阅或不想使用自己的帐户,请在开始之前创建免费帐户

部署虚拟机规模集

  1. 登录到 Azure 门户,并打开 Azure Cloud Shell。

  2. 在 Cloud Shell 窗口顶部的工具栏中,选择“设置”>“转到经典版本”。

  3. 在 Cloud Shell 中,启动代码编辑器并创建名为 cloud-init.yaml 的文件。

    code cloud-init.yaml
    
  4. 将以下文本添加到该文件:

    #cloud-config
    package_upgrade: true
    packages:
      - nginx
    write_files:
      - owner: www-data:www-data
      - path: /var/www/html/index.html
        content: |
            Hello world from Virtual Machine Scale Set !
    runcmd:
      - service nginx restart
    

    此文件包含有关在规模集的虚拟机上安装 nginx 的配置信息。

  5. 选择 Ctrl+S 保存文件,然后选择 Ctrl+Q 关闭代码编辑器。

  6. 运行以下命令,为规模集创建一个新资源组:

    az group create --location eastus --name myResourceGroup
    
  7. 运行以下命令,创建虚拟机规模集:

    az vmss create \
      --resource-group myResourceGroup \
      --name webServerScaleSet \
      --image Ubuntu2204 \
      --upgrade-policy-mode automatic \
      --custom-data cloud-init.yaml \
      --admin-username azureuser \
      --generate-ssh-keys
    

    默认情况下,新虚拟机规模集包含两个实例和一个负载均衡器。

    备注

    custom-data 标志指定虚拟机配置应在创建虚拟机后使用 cloud-init.yaml 文件中的设置。 首次安装虚拟机时,可以使用 cloud-init 文件安装其他包、配置安全性和写入文件。

    有关详细信息,请参阅 Cloud-init 对 Azure 中虚拟机的支持

配置虚拟机规模集

  1. 运行以下命令,向负载均衡器添加运行状况探测:

    az network lb probe create \
      --lb-name webServerScaleSetLB \
      --resource-group myResourceGroup \
      --name webServerHealth \
      --port 80 \
      --protocol Http \
      --path /
    

    运行状况探测通过端口 80 对网站根目录执行 ping 操作。 如果网站没有响应,则认为该服务器不可用。 负载均衡器不会将流量路由到该服务器。

  2. 运行以下命令,将负载均衡器配置为向规模集中的实例路由 HTTP 流量:

    az network lb rule create \
      --resource-group myResourceGroup \
      --name webServerLoadBalancerRuleWeb \
      --lb-name webServerScaleSetLB \
      --probe-name webServerHealth \
      --backend-pool-name webServerScaleSetLBBEPool \
      --backend-port 8080 \
      --frontend-ip-name loadBalancerFrontEnd \
      --frontend-port 8080 \
      --protocol tcp
    

测试虚拟机规模集

  1. 在 Azure 门户中的侧菜单中,选择“资源组”>“myResourceGroup”。

  2. 选择“webServerScaleSet”虚拟机规模集。

  3. 在“概述”页面,记下虚拟机规模集的公共 IP 地址。

    Azure 门户的屏幕截图,其中显示了虚拟机规模集的“概述”页面。

  4. 选择“实例”。 验证规模集是否包含两个正在运行的虚拟机。

    Azure 门户的屏幕截图,其中显示了虚拟机规模集的实例。

  5. 选择一个实例并导航到“属性”页。 验证虚拟机是否运行 Ubuntu Linux。

    Azure 门户的屏幕截图,其中显示了虚拟机规模集的操作系统。

  6. 在 Web 浏览器中,转到规模集的公共 IP 地址。 验证是否显示了消息“Hello World from Virtual Machine Scale Set !”。

    在 Web 浏览器中运行的 Web 应用的屏幕截图,显示了所需消息。