快速入门:使用 Azure CLI 创建公共负载均衡器以对 VM 进行负载均衡
使用 Azure CLI 创建公共负载均衡器和两个虚拟机,通过这种方式开始使用 Azure 负载均衡器。 除了这些资源,还可部署 Azure Bastion、NAT 网关、虚拟网络和所需的子网。
如果没有 Azure 试用版订阅,请在开始前创建 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 CreatePubLBQS-rg \
--location chinaeast
创建虚拟网络
需要先创建支持的虚拟网络和子网,然后才能部署 VM 和测试负载均衡器。
使用 az network vnet create 创建虚拟网络。 该虚拟网络和子网包含本文后面部署的资源。
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 地址
若要通过 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
如果创建的公共 IP 是区域性的,则需要在创建公共负载均衡器时定义指定的区域。
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 的时刻开始计算,而无论出站数据使用情况如何。 有关详细信息,请参阅定价和 SKU。 如果要将 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 主机需要几分钟时间。
创建后端服务器
在本节中,创建以下项:
虚拟机的三个网络接口
两个要用作负载均衡器后端服务器的虚拟机
为虚拟机创建网络接口
使用 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 地址。
发生以下事件之一时,将禁用默认出站访问 IP:
- 将公共 IP 地址分配给 VM。
- 虚拟机被放置在标准负载平衡器的后端池中,有无出站规则均可。
- 向 VM 的子网分配了 Azure NAT 网关资源。
在灵活业务流程模式下通过使用虚拟机规模集创建的 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 网关
若要为后端池中的资源提供出站 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 负载均衡器,请继续学习: