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

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

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

如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户

先决条件

可以使用 Azure Cloud Shell 或本地 Azure CLI。

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

创建资源组

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

使用 az group create 创建资源组:

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

创建虚拟网络

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

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

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

创建公共 IP 地址

若要通过 Internet 访问 Web 应用,需要负载均衡器有一个公共 IP 地址。

使用 az network public-ip create 为负载均衡器前端创建公共 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

创建负载均衡器

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

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

  • 后端 IP 池,前端池将向其发送经过负载均衡的网络流量

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

  • 负载均衡器规则,用于定义如何将流量分发到各个 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

创建运行状况探测

运行状况探测会检查所有虚拟机实例,以确保它们可以发送网络流量。

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

使用 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 用于安全地管理负载均衡器后端池中的虚拟机。

创建公共 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 eastus

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

创建后端服务器

在本节中,创建以下项:

  • 虚拟机的三个网络接口

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

为虚拟机创建网络接口

使用 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。 可以在 VM 创建过程中继续执行后续步骤。

注意

Azure 会为未分配公共 IP 地址的 VM 或位于内部基本 Azure 负载均衡器的后端池中的 VM 提供默认出站访问 IP。 默认出站访问 IP 机制会提供不可配置的出站 IP 地址。

有关详细信息,请参阅 Azure 中的默认出站访问

在将公共 IP 地址分配到 VM 或者将 VM 置于具有或不具有出站规则的标准负载均衡器的后端池中时,会禁用默认出站访问 IP。 如果向虚拟机的子网分配 Azure 虚拟网络网络地址转换 (NAT) 网关资源,则会禁用默认出站访问 IP。

在灵活业务流程模式下由虚拟机规模集创建的 VM 没有默认的出站访问权限。

有关 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 网关

若要为后端池中的资源提供出站 Internet 访问,请创建 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 网关与子网相关联

在虚拟网络中配置资源子网,以通过 az network vnet subnet update 使用特定的 NAT 网关资源。

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

安装 IIS

使用 az vm extension set 将 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

测试负载均衡器

若要获取负载均衡器的公共 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 负载均衡器,请继续学习: