快速入门:使用 Azure CLI 创建用以实现 VM 负载均衡的内部负载平衡器

使用 Azure CLI 创建内部负载均衡器和两个虚拟机,通过这种方式开始使用 Azure 负载均衡器。 其他资源包括 Azure Bastion、NAT 网关、虚拟网络和所需的子网。

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

先决条件

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

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

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

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

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

创建资源组

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

使用 az group create 创建资源组。

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

创建内部负载均衡器时,虚拟网络配置为负载均衡器的网络。

创建虚拟网络

需要先创建支持的虚拟网络和子网,然后才能部署 VM 和测试负载均衡器。 该虚拟网络和子网包含本文后面部署的资源。

使用 az network vnet create 创建虚拟网络。

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

创建 Azure Bastion 主机

在本示例中,你会创建一个 Azure Bastion 主机。 本文稍后将使用 Azure Bastion 主机安全地管理虚拟机并测试负载均衡器部署。

重要

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

创建堡垒公共 IP 地址

使用 az network public-ip create 为 Azure Bastion 主机创建公共 IP 地址。

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

创建堡垒子网

使用 az network vnet subnet create 创建子网。

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

创建 Bastion 主机

使用 az network bastion create 创建主机。

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

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

创建负载均衡器

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

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

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

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

  • 负载均衡器规则,用于定义如何将流量分发到各个 VM

创建负载均衡器资源

使用 az network lb create 创建内部负载均衡器。

  az network lb create \
    --resource-group CreateIntLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --vnet-name myVNet \
    --subnet myBackendSubnet \
    --backend-pool-name myBackEndPool \
    --frontend-ip-name myFrontEnd

创建运行状况探测

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

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

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

  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 创建负载均衡器规则。

  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 nsg create

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

创建网络安全组规则

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

  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 创建两个网络接口。

  array=(myNicVM1 myNicVM2)
  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 创建虚拟机。

  array=(1 2)
  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 地址的 VM 或位于内部基本 Azure 负载均衡器的后端池中的 VM 提供默认出站访问 IP。 默认出站访问 IP 机制会提供不可配置的出站 IP 地址。

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

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

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

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

向后端池添加虚拟机

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

  array=(VM1 VM2)
  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

创建 NAT 网关

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

创建公共 IP

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

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

创建 NAT 网关资源

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

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

将 NAT 网关与子网相关联

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

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

创建测试虚拟机

使用 az network nic create 创建网络接口。

  az network nic create \
    --resource-group CreateIntLBQS-rg \
    --name myNicTestVM \
    --vnet-name myVNet \
    --subnet myBackEndSubnet \
    --network-security-group myNSG

使用 az vm create 创建虚拟机。

  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)
    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 地址”旁边的地址。 如果未显示“专用 IP 地址”,请选择“查看更多”。

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

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

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

  7. myTestVM 上打开“Internet Explorer”。

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

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

清理资源

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

  az group delete \
    --name CreateIntLBQS-rg

后续步骤

在本快速入门:

  • 你创建了内部负载均衡器

  • 连接了两个虚拟机

  • 配置了负载均衡器流量规则和运行状况探测

  • 测试了负载均衡器

若要详细了解 Azure 负载均衡器,请继续学习: