快速入门:使用 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 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 config set extension.use_dynamic_install=yes_without_prompt
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 win2022datacenter \
--admin-username azureuser \
--zone $n \
--no-wait
done
部署 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=(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
测试负载均衡器
登录 Azure 门户。
在“概述”页上找到负载均衡器的专用 IP 地址。 在左侧菜单中,选择“所有服务”>“所有资源”>“myLoadBalancer”。
在 myLoadBalancer 的概述中,复制“专用 IP 地址”旁边的地址。 如果未显示“专用 IP 地址”,请选择“查看更多”。
在左侧菜单中,选择“所有服务”>“所有资源”。 在 CreateIntLBQS-rg 资源组的资源列表中,选择“myTestVM”。
在“概述”页上,选择“连接”>“Bastion”。
输入创建 VM 时所输入的用户名和密码。
在 myTestVM 上打开“Internet Explorer”。
将上一步骤的 IP 地址输入到浏览器的地址栏。 浏览器中会显示 IIS Web 服务器的默认页。
清理资源
如果你不再需要本教程中创建的资源,请使用 az group delete 命令删除资源组、负载均衡器和所有相关资源。
az group delete \
--name CreateIntLBQS-rg
后续步骤
在本快速入门:
你创建了内部负载均衡器
连接了两个虚拟机
配置了负载均衡器流量规则和运行状况探测
测试了负载均衡器
若要详细了解 Azure 负载均衡器,请继续学习: