你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
教程:创建跨区域 Azure 负载均衡器
本文内容
跨区域负载均衡器可确保服务在多个 Azure 区域中全局可用。 如果一个区域出现故障,则会将流量路由到下一个最近的正常运行的区域负载均衡器。
本教程介绍如何执行下列操作:
创建跨区域负载均衡器。
创建包含两个区域负载均衡器的后端池。
创建负载均衡器规则。
测试负载均衡器。
可以使用 Azure 门户、Azure CLI 或 Azure PowerShell 来完成本教程。
先决条件
Azure 订阅。 如果还没有 Azure 订阅,可以在开始前创建一个免费帐户 。
两个标准 SKU Azure 负载均衡器,其后端池部署在两个不同的 Azure 区域中。
Azure 订阅。 如果还没有 Azure 订阅,可以在开始前创建一个免费帐户 。
两个标准 SKU Azure 负载均衡器,其后端池部署在两个不同的 Azure 区域中。
本地安装的 Azure CLI,或 Azure Cloud Shell。
如果选择在本地安装并使用 CLI,本快速入门要求 Azure CLI 2.0.28 或更高版本。 若要查找版本,请运行 az --version
。 如需进行安装或升级,请参阅安装 Azure CLI 。 在本地运行 Azure CLI 时,需要使用 az login
进行登录才能创建与 Azure 的连接。
Azure 订阅。 如果还没有 Azure 订阅,可以在开始前创建一个免费帐户 。
两个标准 SKU Azure 负载均衡器,其后端池部署在两个不同的 Azure 区域中。
Azure PowerShell(本地安装)或 Azure Cloud Shell。
如果选择在本地安装并使用 PowerShell,则本文需要 Azure PowerShell 模块 5.4.1 或更高版本。 运行 Get-Module -ListAvailable Az
查找已安装的版本。 如果需要进行升级,请参阅 Install Azure PowerShell module (安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount
以创建与 Azure 的连接。
创建跨区域负载均衡器
在本部分,请创建一个跨区域负载均衡器,它有一个公共 IP 地址、一个前端 IP 配置、一个添加了区域负载均衡器的后端池和一项负载均衡器规则。
创建负载均衡器资源和其他资源
登录 Azure 门户。
在门户顶部的搜索框中,输入“负载均衡器”。 在搜索结果中选择“负载均衡器”。
在“负载均衡器”页上,选择“创建” 。
在“创建负载均衡器”页的“基本信息”选项卡中,输入或选择以下信息:
设置
值
项目详细信息
订阅
选择订阅。
资源组
选择“新建”并在文本框中输入“CreateCRLBTutorial-rg” 。
实例详细信息
名称
输入“myLoadBalancer-cr”
区域
选择“(US)美国东部”。
类型
选择“公共”。
SKU
保留默认值“标准”。
层
选择“全局”
在页面底部选择“下一步: 前端 IP 配置”。
在“前端 IP 配置”中,选择“+ 添加前端 IP” 。
在“添加前端 IP 地址”的“名称”中输入 LoadBalancerFrontend 。
对于“IP 版本”,请选择“IPv4”或“IPv6” 。
在“公共 IP 地址”中,选择“新建” 。 在“名称”中输入 myPublicIP-cr 。 为“添加公共 IP 地址”对话框选择“保存 ”。
选择“保存”。
在页面底部选择“下一步: 后端池”。
在“后端池”中,选择“+ 添加后端池” 。
在“添加后端池”的“名称”中输入 myBackendPool-cr 。
在“负载均衡器”的“负载均衡器”下拉框中选择“myLoadBalancer-r1”或第一个区域负载均衡器 。 验证“前端 IP 配置”和“IP 地址”是否与 myLoadBalancer-r1 相对应 。
在“负载均衡器”下拉框中选择“myLoadBalancer-r2”或第二个区域负载均衡器 。 验证“前端 IP 配置”和“IP 地址”是否与 myLoadBalancer-r2 相对应 。
选择 添加 。
选择页面底部的“下一步: 入站规则”。
在“入站规则”中,选择“+ 添加负载均衡规则” 。
在“添加负载均衡规则”中,输入或选择以下信息:
设置
值
名称
输入 myHTTPRule-cr。
IP 版本
对于“IP 版本”,请选择“IPv4”或“IPv6” 。
前端 IP 地址
选择“LoadBalancerFrontend”。
协议
选择“TCP”。
端口
输入 80 。
后端池
选择“myBackendPool-cr”。
会话暂留
选择“无”。
空闲超时(分钟)
输入或将滑块移动到“15”。
TCP 重置
选择“启用”。
浮动 IP
保留默认值“禁用”。
选择 添加 。
在页面底部选择“查看 + 创建”。
在“查看 + 创建”选项卡中,选择“创建” 。
注意
跨区域负载均衡器部署将在特定的主 Azure 区域列出。 有关当前列表,请参阅 Azure 中的主区域 ,了解跨区域负载均衡器。
创建资源组
Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。
使用 az group create 创建资源组:
命名为 myResourceGroupLB-CR 。
在 westus 位置。
az group create \
--name myResourceGroupLB-CR \
--location westus
创建跨区域负载均衡器资源
使用 az network cross-region-lb create 创建跨区域负载均衡器:
命名为 myLoadBalancer-CR 。
前端池名为 myFrontEnd-CR 。
后端池名为 myBackEndPool-CR 。
az network cross-region-lb create \
--name myLoadBalancer-CR \
--resource-group myResourceGroupLB-CR \
--frontend-ip-name myFrontEnd-CR \
--backend-pool-name myBackEndPool-CR
创建负载均衡器规则
负载均衡器规则定义:
针对传入流量的前端 IP 配置。
用于接收流量的后端 IP 池。
所需的源和目标端口。
使用 az network cross-region-lb rule create 创建负载均衡器规则:
命名为 myHTTPRule-CR
侦听前端池 myFrontEnd-CR 中的端口 80 。
使用端口 80 将负载均衡的网络流量发送到后端地址池 myBackEndPool-CR 。
协议为“TCP”。
az network cross-region-lb rule create \
--backend-port 80 \
--frontend-port 80 \
--lb-name myLoadBalancer-CR \
--name myHTTPRule-CR \
--protocol tcp \
--resource-group myResourceGroupLB-CR \
--backend-pool-name myBackEndPool-CR \
--frontend-ip-name myFrontEnd-CR
创建后端池
在本部分中,你将向跨区域负载均衡器的后端池添加两个区域标准负载均衡器。
将区域前端添加到负载均衡器
在本部分中,将两个区域负载均衡器的资源 ID 放入变量中,然后使用变量将前端添加到跨区域负载均衡器的后端地址池。
使用 az network lb frontend-ip show 检索资源 ID。
使用 az network cross-region-lb address-pool address add 将置于变量中的前端添加到跨区域负载均衡器后端池中:
region1id=$(az network lb frontend-ip show \
--lb-name myLoadBalancer-R1 \
--name myFrontEnd-R1 \
--resource-group CreatePubLBQS-rg-r1 \
--query id \
--output tsv)
az network cross-region-lb address-pool address add \
--frontend-ip-address $region1id \
--lb-name myLoadBalancer-CR \
--name myFrontEnd-R1 \
--pool-name myBackEndPool-CR \
--resource-group myResourceGroupLB-CR
region2id=$(az network lb frontend-ip show \
--lb-name myLoadBalancer-R2 \
--name myFrontEnd-R2 \
--resource-group CreatePubLBQS-rg-r2 \
--query id \
--output tsv)
az network cross-region-lb address-pool address add \
--frontend-ip-address $region2id \
--lb-name myLoadBalancer-CR \
--name myFrontEnd-R2 \
--pool-name myBackEndPool-CR \
--resource-group myResourceGroupLB-CR
创建资源组
Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。
使用 New-AzResourceGroup 创建资源组。
$rg = @{
Name = 'MyResourceGroupLB-CR'
Location = 'westus'
}
New-AzResourceGroup @rg
创建跨区域负载均衡器资源
在本部分,你将创建跨区域负载均衡器所需的资源。
全局标准 SKU 公共 IP 用于跨区域负载均衡器的前端。
`## Create global IP address for load balancer ##
$ip = @{
Name = 'myPublicIP-CR'
ResourceGroupName = 'MyResourceGroupLB-CR'
Location = 'westus'
Sku = 'Standard'
Tier = 'Global'
AllocationMethod = 'Static'
}
$publicIP = New-AzPublicIpAddress @ip
## Create frontend configuration ##
$fe = @{
Name = 'myFrontEnd-CR'
PublicIpAddress = $publicIP
}
$feip = New-AzLoadBalancerFrontendIpConfig @fe
## Create backend address pool ##
$be = @{
Name = 'myBackEndPool-CR'
}
$bepool = New-AzLoadBalancerBackendAddressPoolConfig @be
## Create the load balancer rule ##
$rul = @{
Name = 'myHTTPRule-CR'
Protocol = 'tcp'
FrontendPort = '80'
BackendPort = '80'
FrontendIpConfiguration = $feip
BackendAddressPool = $bepool
}
$rule = New-AzLoadBalancerRuleConfig @rul
## Create cross-region load balancer resource ##
$lbp = @{
ResourceGroupName = 'myResourceGroupLB-CR'
Name = 'myLoadBalancer-CR'
Location = 'westus'
Sku = 'Standard'
Tier = 'Global'
FrontendIpConfiguration = $feip
BackendAddressPool = $bepool
LoadBalancingRule = $rule
}
$lb = New-AzLoadBalancer @lbp`
在本部分中,你将向跨区域负载均衡器的后端池添加两个区域标准负载均衡器。
## Place the region one load balancer configuration in a variable ##
$region1 = @{
Name = 'myLoadBalancer-R1'
ResourceGroupName = 'CreatePubLBQS-rg-r1'
}
$R1 = Get-AzLoadBalancer @region1
## Place the region two load balancer configuration in a variable ##
$region2 = @{
Name = 'myLoadBalancer-R2'
ResourceGroupName = 'CreatePubLBQS-rg-r2'
}
$R2 = Get-AzLoadBalancer @region2
## Place the region one load balancer frontend configuration in a variable ##
$region1fe = @{
Name = 'MyFrontEnd-R1'
LoadBalancer = $R1
}
$R1FE = Get-AzLoadBalancerFrontendIpConfig @region1fe
## Place the region two load balancer frontend configuration in a variable ##
$region2fe = @{
Name = 'MyFrontEnd-R2'
LoadBalancer = $R2
}
$R2FE = Get-AzLoadBalancerFrontendIpConfig @region2fe
## Create the cross-region backend address pool configuration for region 1 ##
$region1ap = @{
Name = 'MyBackendPoolConfig-R1'
LoadBalancerFrontendIPConfigurationId = $R1FE.Id
}
$beaddressconfigR1 = New-AzLoadBalancerBackendAddressConfig @region1ap
## Create the cross-region backend address pool configuration for region 2 ##
$region2ap = @{
Name = 'MyBackendPoolConfig-R2'
LoadBalancerFrontendIPConfigurationId = $R2FE.Id
}
$beaddressconfigR2 = New-AzLoadBalancerBackendAddressConfig @region2ap
## Apply the backend address pool configuration for the cross-region load balancer ##
$bepoolcr = @{
ResourceGroupName = 'myResourceGroupLB-CR'
LoadBalancerName = 'myLoadBalancer-CR'
Name = 'myBackEndPool-CR'
LoadBalancerBackendAddress = $beaddressconfigR1,$beaddressconfigR2
}
Set-AzLoadBalancerBackendAddressPool @bepoolcr
测试负载均衡器
在本部分中,你会测试跨区域负载均衡器。 你需要在 Web 浏览器中连接到公共 IP 地址。 你将停止其中一个区域负载均衡器后端池中的虚拟机并观察故障转移。
在“概述”屏幕上找到负载均衡器的公共 IP 地址。 在左侧菜单中选择“所有服务”,选择“所有资源”,然后选择“myPublicIP-cr” 。
复制该公共 IP 地址,并将其粘贴到浏览器的地址栏。 IIS Web 服务器的默认页会显示在浏览器上。
停止其中一个区域负载均衡器的后端池中的虚拟机。
刷新 Web 浏览器,观察与其他区域负载均衡器的连接的故障转移。
在本部分中,你会测试跨区域负载均衡器。 你需要在 Web 浏览器中连接到公共 IP 地址。 你将停止其中一个区域负载均衡器后端池中的虚拟机并观察故障转移。
若要获取负载均衡器的公共 IP 地址,请使用 az network public-ip show :
az network public-ip show \
--resource-group myResourceGroupLB-CR \
--name PublicIPmyLoadBalancer-CR \
--query ipAddress \
--output tsv
复制该公共 IP 地址,并将其粘贴到浏览器的地址栏。 IIS Web 服务器的默认页会显示在浏览器上。
停止其中一个区域负载均衡器的后端池中的虚拟机。
刷新 Web 浏览器,观察与其他区域负载均衡器的连接的故障转移。
在本部分中,你会测试跨区域负载均衡器。 你需要在 Web 浏览器中连接到公共 IP 地址。 你将停止其中一个区域负载均衡器后端池中的虚拟机并观察故障转移。
使用 Get-AzPublicIpAddress 获取负载均衡器的公共 IP 地址:
$ip = @{
Name = 'myPublicIP-CR'
ResourceGroupName = 'myResourceGroupLB-CR'
}
Get-AzPublicIPAddress @ip | select IpAddress
复制该公共 IP 地址,并将其粘贴到浏览器的地址栏。 IIS Web 服务器的默认页会显示在浏览器上。
停止其中一个区域负载均衡器的后端池中的虚拟机。
刷新 Web 浏览器,观察与其他区域负载均衡器的连接的故障转移。
清理资源
若不再需要资源组、负载均衡器以及所有相关资源,请将其删除。
为此,请选择包含资源的资源组“CreateCRLBTutorial-rg”,然后选择“删除” 。
如果不再需要资源组、负载均衡器和所有相关的资源,使用 az group delete 命令将它们删除。
az group delete \
--name myResourceGroupLB-CR
后续步骤
在本教程中,你将了解:
创建了跨区域负载均衡器。
向跨区域负载均衡器的后端池添加了区域负载均衡器。
创建了负载均衡规则。
测试了负载均衡器。
有关跨区域负载均衡器的详细信息,请参阅: