Compartilhar via

快速入门:使用 Azure CLI 创建公共负载均衡器以对虚拟机进行负载均衡

使用 Azure CLI 创建公共负载均衡器和两个虚拟机,以入门 Azure Load Balancer。 除了这些资源,还可以部署Azure Bastion、NAT 网关、virtual network和所需的子网。

如果没有 Azure 试用版订阅,请在开始之前创建 Azure 试用订阅

先决条件

  • 如果希望在本地运行 CLI 引用命令,install Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行Azure CLI。 有关详细信息,请参阅 如何在 Docker 容器中运行Azure CLI

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

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

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

  • 本快速入门需要 2.0.28 或更高版本的Azure CLI。 如果使用 Azure local Shell,则已安装最新版本。

创建资源组

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

使用 az group create 创建资源组

  az group create \
    --name CreatePubLBQS-rg \
    --location chinaeast

创建虚拟网络

在部署虚拟机并测试负载均衡器之前,请先创建所需的虚拟网络和子网。

使用 az network vnet create 创建virtual network。 该虚拟网络和子网包含将在本文稍后部署的资源。

  az network vnet create \
    --resource-group CreatePubLBQS-rg \
    --location chinaeast \
    --name myVNet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name myBackendSubnet \
    --subnet-prefixes 10.1.0.0/24

创建公共 IP 地址

若要在互联网访问您的 Web 应用,您需要为负载均衡器分配一个公网 IP 地址。

使用 az network public-ip create 为 load balancer 前端创建公共 IP。

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --sku Standard \
    --zone 1 2 3

若要改为在区域 1 中创建区域性公共 IP 地址,请使用以下命令:

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --sku Standard \
    --zone 1

创建负载均衡器

本部分详细介绍了如何创建和配置load balancer的以下组件:

  • 接收负载均衡器上传入网络流量的前端 IP 池

  • 前端池将经过负载均衡的网络流量发送到一个后端 IP 池。

  • 运行状况探测,用于确定后端 VM 实例的运行状况

  • 定义如何将流量分发到虚拟机的负载均衡规则。

创建负载均衡器资源

使用 az network lb create 创建公共负载均衡器:

  az network lb create \
    --resource-group CreatePubLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --public-ip-address myPublicIP \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool

如果创建的公共 IP 是区域性的,则需要在创建公共load balancer时定义指定的区域。

  az network lb create \
    --resource-group CreatePubLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --public-ip-address myPublicIP \
    --frontend-ip-name myFrontEnd \
    --public-ip-zone 1 \
    --backend-pool-name myBackEndPool

创建健康探测

健康探测器会检查所有虚拟机实例,以确保它们可以发送网络流量。

从负载均衡器中删除探测检查失败的虚拟机。 在故障解决后,虚拟机将重新添加到负载均衡器中。

使用 az network lb probe create 来创建运行状况探测器:

  az network lb probe create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHealthProbe \
    --protocol tcp \
    --port 80

创建负载均衡器规则

负载均衡器规则的定义是:

  • 针对传入流量的前端 IP 配置

  • 用于接收流量的后端 IP 池

  • 所需的源和目标端口

使用 az network lb rule create 创建负载均衡器规则:

  az network lb rule create \
    --resource-group CreatePubLBQS-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 \
    --disable-outbound-snat true \
    --idle-timeout 15 \
    --enable-tcp-reset true

创建网络安全组

对于标准负载均衡器,后端池中的 VM 需要在网络安全组中具有网络接口。

使用 az network nsg create 创建网络安全组:

  az network nsg create \
    --resource-group CreatePubLBQS-rg \
    --name myNSG

创建网络安全组规则

使用 az network nsg rule create 创建网络安全组规则

  az network nsg rule create \
    --resource-group CreatePubLBQS-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

创建 Bastion 主机

在本部分中,将创建Azure Bastion的资源。 Azure Bastion用于安全地管理负载均衡器后端池中的虚拟机。

重要

小时定价从部署 Bastion 的时刻开始计算,而无论出站数据使用情况如何。 有关详细信息,请参阅 PricingSKUs。 如果要将 Bastion 部署为教程或测试的一部分,建议在使用完此资源后将其删除。

创建公共 IP 地址

使用 az network public-ip create 为堡垒主机创建公共 IP 地址。 堡垒主机使用公共 IP 安全访问虚拟机资源。

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myBastionIP \
    --sku Standard \
    --zone 1 2 3

创建堡垒子网

使用 az network vnet subnet create 来创建堡垒子网。 堡垒子网由堡垒主机使用以访问虚拟网络。

  az network vnet subnet create \
    --resource-group CreatePubLBQS-rg \
    --name AzureBastionSubnet \
    --vnet-name myVNet \
    --address-prefixes 10.1.1.0/27

创建堡垒主机

使用 az network bastion create 创建堡垒主机。 堡垒主机用于安全地连接到本文后面部分创建的虚拟机资源。

  az network bastion create \
    --resource-group CreatePubLBQS-rg \
    --name myBastionHost \
    --public-ip-address myBastionIP \
    --vnet-name myVNet \
    --location chinaeast

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

创建后端服务器

在本节中,创建以下项:

  • 虚拟机的两个网络接口

  • 两个虚拟机将被用作负载均衡器的后端服务器

为virtual machines创建网络接口

使用 az network nic create 创建两个网络接口:

  array=(myNicVM1 myNicVM2)
  for vmnic in "${array[@]}"
  do
    az network nic create \
        --resource-group CreatePubLBQS-rg \
        --name $vmnic \
        --vnet-name myVNet \
        --subnet myBackEndSubnet \
        --network-security-group myNSG
  done

创建虚拟机

使用 az vm create 创建虚拟机:

  az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM1 \
    --nics myNicVM1 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 1 \
    --no-wait
  az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM2 \
    --nics myNicVM2 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 2 \
    --no-wait

部署 VM 可能需要花费几分钟时间。 在虚拟机创建过程中,您可以继续执行后续步骤。

注意事项

Azure为未分配公共 IP 地址的虚拟机,或者位于内部基本 Azure 负载均衡器后端池中的虚拟机,提供默认的出站访问 IP。 默认出站访问 IP 机制提供一个无法配置的出站 IP 地址。

发生以下事件之一时,将禁用默认出站访问 IP:

  • 将公共 IP 地址分配给 VM。
  • 虚拟机被放置在标准负载均衡器的后端池中,可能包含或不包含出站规则。
  • Azure NAT 网关资源分配给 VM 的子网。

在灵活协调模式下使用虚拟机规模集创建的 VM 没有默认的出站访问。

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

将虚拟机添加到负载均衡器后端池

使用 az network nic ip-config address-pool add 将虚拟机添加到后端池:

  array=(myNicVM1 myNicVM2)
  for vmnic in "${array[@]}"
  do
    az network nic ip-config address-pool add \
     --address-pool myBackendPool \
     --ip-config-name ipconfig1 \
     --nic-name $vmnic \
     --resource-group CreatePubLBQS-rg \
     --lb-name myLoadBalancer
  done

创建 NAT 网关

若要为后端池中的资源提供出站互联网访问,请创建 NAT 网关。

创建公共 IP

使用 az network public-ip create 为出站连接创建单个 IP。

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myNATgatewayIP \
    --sku Standard \
    --zone 1 2 3

若要改为在区域 1 中创建区域性公共 IP 地址,请使用以下命令:

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myNATgatewayIP \
    --sku Standard \
    --zone 1

创建 NAT 网关资源

使用命令 az network nat gateway create 来创建 NAT 网关资源。 上一步创建的公共 IP 与 NAT 网关相关联。

  az network nat gateway create \
    --resource-group CreatePubLBQS-rg \
    --name myNATgateway \
    --public-ip-addresses myNATgatewayIP \
    --idle-timeout 10

将 NAT 网关与子网相关联

将virtual network中的源子网配置为使用具有 az 网络 vnet 子网更新的特定 NAT 网关资源。

  az network vnet subnet update \
    --resource-group CreatePubLBQS-rg \
    --vnet-name myVNet \
    --name myBackendSubnet \
    --nat-gateway myNATgateway

安装 IIS

使用 az vm 扩展集在virtual machines上安装 IIS,并将默认网站设置为计算机名称。

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

测试负载均衡器

若要获取load balancer的公共 IP 地址,请使用 az network public-ip show

复制该公共 IP 地址,并将其粘贴到浏览器的地址栏。

  az network public-ip show \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --query ipAddress \
    --output tsv

浏览器窗口的截屏,显示负载均衡器测试页。

清理资源

如果不再需要,可以使用 az group delete 命令删除资源组、负载均衡器及所有相关资源。

  az group delete \
    --name CreatePubLBQS-rg

后续步骤

在本快速入门指南中:

  • 你创建了一个标准的公网负载均衡器

  • 附加了两台虚拟机

  • 配置了负载均衡器的流量规则和健康检查

  • 测试 负载均衡器

若要详细了解Azure Load Balancer,请继续: