快速入门:使用 Azure CLI 创建内部负载均衡器

使用 Azure CLI 创建内部负载均衡器和三个虚拟机,通过这种方式开始使用 Azure 负载均衡器。

如果没有 Azure 订阅,可在开始前创建一个试用帐户

先决条件

  • 如果需要,请安装 Azure CLI 来运行 CLI 参考命令。

    • 如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅登录 Azure CLI

    • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展

    • 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade

  • 本快速入门需要 Azure CLI 2.0.28 或更高版本。

创建资源组

Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。

使用 az group create 创建资源组。 将资源组命名为“CreateIntLBQS-rg”,将位置指定为“chinaeast2”。

  az group create \
    --name CreateIntLBQS-rg \
    --location chinanorth


备注

对于生产型工作负载,建议使用标准 SKU 负载均衡器。 有关 sku 的详细信息,请参阅 Azure 负载均衡器 SKU

在本部分,你将创建一个负载均衡器来对虚拟机进行负载均衡。 创建内部负载均衡器时,虚拟网络配置为负载均衡器的网络。 下图显示在本快速入门中创建的资源:

在快速入门中创建的标准负载均衡器资源。

配置虚拟网络

需要先创建支持的虚拟网络资源,然后才能部署 VM 和负载均衡器。

创建虚拟网络

使用 az network vnet create 创建虚拟网络。 指定下列各项:

  • 名称为 myVNet
  • 地址前缀为 10.1.0.0/16
  • 子网名为 myBackendSubnet
  • 子网前缀为 10.1.0.0/24
  • CreateIntLBQS-rg 资源组中
  • chinanorth 的位置
  az network vnet create \
    --resource-group CreateIntLBQS-rg \
    --location chinanorth \
    --name myVNet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name myBackendSubnet \
    --subnet-prefixes 10.1.0.0/24

创建公共 IP 地址

使用 az network public-ip create 为 Azure Bastion 主机创建公共 IP 地址。 指定下列各项:

  • 创建名为 myBastionIP 的标准区域冗余公共 IP 地址
  • 在“CreateIntLBQS-rg”中
az network public-ip create \
    --resource-group CreateIntLBQS-rg  \
    --name myBastionIP \
    --sku Standard

创建 Azure Bastion 子网

使用 az network vnet subnet create 创建子网。 指定下列各项:

  • 名称为 AzureBastionSubnet
  • 地址前缀为 10.1.1.0/24
  • 在虚拟网络 myVNet
  • 在资源组 CreateIntLBQS-rg
az network vnet subnet create \
    --resource-group CreateIntLBQS-rg  \
    --name AzureBastionSubnet \
    --vnet-name myVNet \
    --address-prefixes 10.1.1.0/24

创建 Azure Bastion 主机

使用 az network bastion create 创建主机。 指定下列各项:

  • 命名为 myBastionHost
  • 在“CreateIntLBQS-rg”中
  • 与公共 IP myBastionIP 相关联
  • 与虚拟网络 myVNet 相关联
  • 在 chinanorth 位置
az network bastion create \
    --resource-group CreateIntLBQS-rg  \
    --name myBastionHost \
    --public-ip-address myBastionIP \
    --vnet-name myVNet \
    --location chinanorth

部署 Azure Bastion 主机需要几分钟时间。

创建网络安全组

对于标准负载均衡器,请确保 VM 具有属于网络安全组的网络接口。 使用 az network nsg create 创建网络安全组。 指定下列各项:

  • 名称为 myNSG
  • 在资源组 CreateIntLBQS-rg
  az network nsg create \
    --resource-group CreateIntLBQS-rg \
    --name myNSG

创建网络安全组规则

使用 az network nsg rule create 创建网络安全组规则。 指定下列各项:

  • 名称为 myNSGRuleHTTP
  • 在上一步骤创建的网络安全组 myNSG
  • 在资源组 CreateIntLBQS-rg
  • 协议为 (*)
  • 方向为“入站”
  • 源为 (*)
  • 目标为 (*)
  • 目标端口为“端口 80”
  • 访问为“允许”
  • 优先级为 200
  az network nsg rule create \
    --resource-group CreateIntLBQS-rg \
    --nsg-name myNSG \
    --name myNSGRuleHTTP \
    --protocol '*' \
    --direction inbound \
    --source-address-prefix '*' \
    --source-port-range '*' \
    --destination-address-prefix '*' \
    --destination-port-range 80 \
    --access allow \
    --priority 200

创建后端服务器

在本节中,创建以下项:

  • 虚拟机的三个网络接口。
  • 三个用作负载均衡器服务器的虚拟机。

为虚拟机创建网络接口

使用 az network nic create 创建三个网络接口。 指定下列各项:

  • 名称为 myNicVM1myNicVM2myNicVM3
  • 在资源组 CreateIntLBQS-rg
  • 在虚拟网络 myVNet
  • 在子网 myBackendSubnet
  • 在网络安全组 myNSG
  array=(myNicVM1 myNicVM2 myNicVM3)
  for vmnic in "${array[@]}"
  do
    az network nic create \
        --resource-group CreateIntLBQS-rg \
        --name $vmnic \
        --vnet-name myVNet \
        --subnet myBackEndSubnet \
        --network-security-group myNSG
  done

创建虚拟机

使用 az vm create 创建虚拟机。 指定下列各项:

  • 名称为 myVM1myVM2myVM3
  • 在资源组 CreateIntLBQS-rg
  • 附加到网络接口 myNicVM1myNicVM2myNicVM3
  • 虚拟机映像为 win2019datacenter
  • 区域 1区域 2区域 3
  array=(1 2 3)
  for n in "${array[@]}"
  do
    az vm create \
    --resource-group CreateIntLBQS-rg \
    --name myVM$n \
    --nics myNicVM$n \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone $n \
    --no-wait
  done

部署 VM 可能需要花费几分钟时间。

备注

Azure 为未获得公共 IP 地址或位于内部基本 Azure 负载均衡器后端池中的 Azure 虚拟机提供临时 IP。 临时 IP 机制可提供无法配置的出站 IP 地址。

如果将公共 IP 地址分配给某个虚拟机或将该虚拟机置入具有或不具有出站规则的标准负载均衡器的后端池中时,将禁用其原有的临时 IP。 如果向虚拟机的子网分配 Azure 虚拟网络 NAT 网关资源,也会禁用其临时 IP。

有关 Azure 中出站连接的详细信息,请参阅为出站连接使用源网络地址转换 (SNAT)

创建负载均衡器

本部分详细介绍如何创建和配置负载均衡器的以下组件:

  • 一个 IP 池,用于在负载均衡器上接收传入网络流量。
  • 另一个后端 IP 池,第一个池将负载均衡的网络流量发送到其中。
  • 一个运行状况探测,用于确定 VM 实例的运行状况。
  • 负载均衡器规则,用于定义如何将流量分配给 VM。

创建负载均衡器资源

使用 az network lb create 创建公共负载均衡器。 指定下列各项:

  • 命名为“myLoadBalancer”
  • 一个名为 myFrontEnd 的池
  • 一个名为 myBackEndPool 的池
  • 与虚拟网络 myVNet 相关联
  • 与子网 myBackendSubnet 相关联
  az network lb create \
    --resource-group CreateIntLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --vnet-name myVnet \
    --subnet myBackendSubnet \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool

创建运行状况探测

运行状况探测会检查所有虚拟机实例,以确保它们可以发送网络流量。 从负载均衡器中删除未通过探测检查的虚拟机。 解决故障后,虚拟机将重新添加到负载均衡器中。

使用 az network lb probe create 创建运行状况探测器。 指定下列各项:

  • 监视虚拟机的运行状况
  • 名称为 myHealthProbe
  • 协议为 TCP
  • 监视 端口 80
  az network lb probe create \
    --resource-group CreateIntLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHealthProbe \
    --protocol tcp \
    --port 80

创建负载均衡器规则

负载均衡器规则定义:

  • 针对传入流量的 IP 配置。
  • 用于接收流量的 IP 池。
  • 所需的源和目标端口。

使用 az network lb rule create 创建负载均衡器规则。 指定下列各项:

  • 命名为“myHTTPRule”
  • 侦听池 myFrontEnd 中的 端口 80
  • 使用 端口 80 将负载均衡的网络流量发送到地址池 myBackEndPool
  • 使用运行状况探测 myHealthProbe
  • 协议为 TCP
  • 空闲超时为 15 分钟
  • 启用 TCP 重置
  az network lb rule create \
    --resource-group CreateIntLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHTTPRule \
    --protocol tcp \
    --frontend-port 80 \
    --backend-port 80 \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool \
    --probe-name myHealthProbe \
    --idle-timeout 15 \
    --enable-tcp-reset true

将 VM 添加到负载均衡器池

使用 az network nic ip-config address-pool add 将虚拟机添加到后端池。 指定下列各项:

  • 在地址池 myBackEndPool
  • 在资源组 CreateIntLBQS-rg
  • 与网络接口 myNicVM1myNicVM2myNicVM3 相关联
  • 与负载均衡器 myLoadBalancer 关联
  array=(VM1 VM2 VM3)
  for vm in "${array[@]}"
  do
  az network nic ip-config address-pool add \
   --address-pool myBackendPool \
   --ip-config-name ipconfig1 \
   --nic-name myNic$vm \
   --resource-group CreateIntLBQS-rg \
   --lb-name myLoadBalancer
  done

测试负载均衡器

使用 az network nic create 创建网络接口。 指定下列各项:

  • 名称为 myNicTestVM
  • 在资源组 CreateIntLBQS-rg
  • 在虚拟网络 myVNet
  • 在子网 myBackendSubnet
  • 在网络安全组 myNSG
  az network nic create \
    --resource-group CreateIntLBQS-rg \
    --name myNicTestVM \
    --vnet-name myVNet \
    --subnet myBackEndSubnet \
    --network-security-group myNSG

使用 az vm create 创建虚拟机。 指定下列各项:

  • 名称为 myTestVM
  • 在资源组 CreateIntLBQS-rg
  • 附加到网络接口 myNicTestVM
  • 虚拟机映像为 Win2019Datacenter
  az vm create \
    --resource-group CreateIntLBQS-rg \
    --name myTestVM \
    --nics myNicTestVM \
    --image Win2019Datacenter \
    --admin-username azureuser \
    --no-wait

可能需要等待几分钟时间来部署虚拟机。

安装 IIS

使用 az vm extension set 将 IIS 安装在虚拟机上,并将默认网站设置为计算机名。

  array=(myVM1 myVM2 myVM3)
    for vm in "${array[@]}"
    do
     az vm extension set \
       --publisher Microsoft.Compute \
       --version 1.8 \
       --name CustomScriptExtension \
       --vm-name $vm \
       --resource-group CreateIntLBQS-rg \
       --settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
  done

测试

  1. 登录 Azure 门户。

  2. 在“概述”页上找到负载均衡器的专用 IP 地址。 在左侧菜单中,选择“所有服务” > “所有资源” > “myLoadBalancer”。

  3. myLoadBalancer 的概述中,复制“专用 IP 地址”旁边的地址。

  4. 在左侧菜单中,选择“所有服务” > “所有资源”。 在 CreateIntLBQS-rg 资源组的资源列表中,选择“myTestVM”。

  5. 在“概述”页上,选择“连接” > “Bastion”。

  6. 输入创建 VM 时所输入的用户名和密码。

  7. myTestVM 上打开“Internet Explorer”。

  8. 将上一步骤的 IP 地址输入到浏览器的地址栏。 浏览器中会显示 IIS Web 服务器的默认页。

    浏览器地址栏中 IP 地址屏幕截图。

若要查看所有三个 VM 中的负载均衡器分配流量,可以自定义每个 VM 的 IIS Web 服务器的默认页。 然后从客户端计算机手动刷新 Web 浏览器。

清理资源

如果你不再需要本教程中创建的资源,请使用 az group delete 命令删除资源组、负载均衡器和所有相关资源。

  az group delete \
    --name CreateIntLBQS-rg

后续步骤

简要了解 Azure 负载均衡器。