Tutorial:使用 Azure PowerShell 创建跨区域 Azure 负载均衡器
跨区域负载均衡器可确保服务在多个 Azure 区域中全局可用。 如果一个区域出现故障,则会将流量路由到下一个最近的正常运行的区域负载均衡器。
本教程介绍如何执行下列操作:
- 创建跨区域负载均衡器。
- 创建负载均衡器规则。
- 创建包含两个区域负载均衡器的后端池。
- 测试负载均衡器。
如果没有 Azure 订阅,请在开始前创建一个试用版订阅。
先决条件
- Azure 订阅。
- 两个标准 SKU Azure 负载均衡器,其后端池部署在两个不同的 Azure 区域中。
- 有关为后端池创建区域标准负载均衡器和虚拟机的信息,请参阅快速入门:使用 Azure PowerShell 创建公共负载均衡器以对 VM 进行负载均衡。
- 为每个区域中的负载均衡器和虚拟机的名称追加 -R1 和 -R2 。
- 有关为后端池创建区域标准负载均衡器和虚拟机的信息,请参阅快速入门:使用 Azure PowerShell 创建公共负载均衡器以对 VM 进行负载均衡。
- 在本地安装了 Azure PowerShell。
如果选择在本地安装并使用 PowerShell,则本文需要 Azure PowerShell 模块 5.4.1 或更高版本。 运行 Get-Module -ListAvailable Az
查找已安装的版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount -Environment AzureChinaCloud
以创建与 Azure 的连接。
创建跨区域负载均衡器
创建资源组
Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。
使用 New-AzResourceGroup 创建资源组。
$rg = @{
Name = 'MyResourceGroupLB-CR'
Location = 'chinanorth'
}
New-AzResourceGroup @rg
创建跨区域负载均衡器资源
在本部分,你将创建跨区域负载均衡器所需的资源。
全局标准 SKU 公共 IP 用于跨区域负载均衡器的前端。
使用 New-AzPublicIpAddress 创建该公共 IP 地址。
使用 New-AzLoadBalancerFrontendIpConfig 创建前端 IP 配置。
使用 New-AzLoadBalancerBackendAddressPoolConfig 创建一个后端地址池。
使用 Add-AzLoadBalancerRuleConfig 创建一个负载均衡器规则。
使用 New-AzLoadBalancer 创建跨区域负载均衡器。
## Create global IP address for load balancer ##
$ip = @{
Name = 'myPublicIP-CR'
ResourceGroupName = 'MyResourceGroupLB-CR'
Location = 'chinanorth'
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 = 'chinanorth'
Sku = 'Standard'
Tier = 'Global'
FrontendIpConfiguration = $feip
BackendAddressPool = $bepool
LoadBalancingRule = $rule
}
$lb = New-AzLoadBalancer @lbp
配置后端池
在本部分中,你将向跨区域负载均衡器的后端池添加两个区域标准负载均衡器。
重要
若要完成这些步骤,请确保已在订阅中部署了两个具有后端池的区域负载均衡器。 有关详细信息,请参阅快速入门:使用 Azure PowerShell 创建公共负载均衡器以对 VM 进行负载均衡。
使用 Get-AzLoadBalancer 和 Get-AzLoadBalancerFrontendIpConfig 将区域负载均衡器信息存储在变量中。
使用 New-AzLoadBalancerBackendAddressConfig 创建负载均衡器的后端地址池配置。
使用 Set-AzLoadBalancerBackendAddressPool 将区域负载均衡器前端添加到跨区域后端池。
## 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 地址。 你将停止其中一个区域负载均衡器后端池中的虚拟机并观察故障转移。
- 使用 Get-AzPublicIpAddress 获取负载均衡器的公共 IP 地址:
$ip = @{
Name = 'myPublicIP-CR'
ResourceGroupName = 'myResourceGroupLB-CR'
}
Get-AzPublicIPAddress @ip | select IpAddress
复制该公共 IP 地址,并将其粘贴到浏览器的地址栏。 IIS Web 服务器的默认页会显示在浏览器上。
停止其中一个区域负载均衡器的后端池中的虚拟机。
刷新 Web 浏览器,观察与其他区域负载均衡器的连接的故障转移。
清理资源
如果不再需要资源组、负载均衡器和剩余资源,可以使用 Remove-AzResourceGroup 命令将其删除。
Remove-AzResourceGroup -Name 'myResourceGroupLB-CR'
后续步骤
本教程介绍以下操作:
- 创建了全局 IP 地址。
- 创建了跨区域负载均衡器。
- 创建了负载均衡规则。
- 向跨区域负载均衡器的后端池添加了区域负载均衡器。
- 测试了负载均衡器。
转到下一篇文章,了解如何…