在主动-备用高可用性设置上配置 GSLB
您可以在 Azure 上的主动-备用 HA 部署中分三步配置全局服务器负载均衡 (GSLB):
-
在每个 GSLB 站点上创建 VPX HA 对。有关如何创建 HA 对的信息,请参阅 (/zh-cn/vpx/13-1/deploy-vpx-on-azure/configure-vpx-pair-ha-inc.html)。
-
配置 Azure 负载均衡器 (ALB),使用前端 IP 地址和规则以允许 GSLB 和 DNS 流量。
此步骤涉及以下子步骤。有关完成这些子步骤所用的 PowerShell 命令,请参阅本节中的方案。
a. 为 GSLB 站点创建前端
IPconfig。b. 创建后端地址池,其中包含 HA 中节点的 NIC 1/1 的 IP 地址。
c. 为以下项创建负载均衡规则:
TCP/3009 – gslb communication TCP/3008 - gslb communication UDP/53 - DNS communicationd. 将后端地址池与在步骤 c 中创建的 LB 规则关联。
e. 更新 HA 对中节点的 NIC 1/1 的网络安全组,以允许 TCP 3008、TCP 3009 和 UDP 53 端口的流量。
-
在每个 HA 对上启用 GSLB。
方案
此方案包括两个站点 - 站点 1 和站点 2。每个站点都配置了一个 HA 对(HA1 和 HA2),其中包含多个 NIC、多个 IP 地址和 GSLB。
图: Azure 上的主动-备用 HA 部署中的 GSLB

在此场景中,每个虚拟机有三个网卡——NIC 0/1、1/1 和 1/2。这些网卡配置用于以下目的。
NIC 0/1:用于处理管理流量
NIC 1/1:用于处理客户端流量
NIC 1/2:用于与后端服务器通信
各项参数设置
以下是 ALB 的示例参数设置。您可以根据需要使用不同的设置。
$locName="South east Asia"
$rgName="MulitIP-MultiNIC-RG"
$pubIPName4="PIPFORGSLB1"
$domName4="vpxgslbdns"
$lbName="MultiIPALB"
$frontEndConfigName2="FrontEndIP2"
$backendPoolName1="BackendPoolHttp"
$lbRuleName2="LBRuleGSLB1"
$lbRuleName3="LBRuleGSLB2"
$lbRuleName4="LBRuleDNS"
$healthProbeName="HealthProbe"
使用前端 IP 地址和规则配置 ALB,以允许 GSLB 和 DNS 流量
步骤 1. 为 GSLB 站点 IP 创建公共 IP
$pip4=New-AzureRmPublicIpAddress -Name $pubIPName4 -ResourceGroupName $rgName -DomainNameLabel $domName4 -Location $locName -AllocationMethod Dynamic
Get-AzureRmLoadBalancer -Name \$lbName -ResourceGroupName \$rgName | Add-AzureRmLoadBalancerFrontendIpConfig -Name \$frontEndConfigName2 -PublicIpAddress \$pip4 | Set-AzureRmLoadBalancer
步骤 2. 创建 LB 规则并更新现有 ALB。
$alb = get-AzureRmLoadBalancer -Name $lbName -ResourceGroupName $rgName
$frontendipconfig2=Get-AzureRmLoadBalancerFrontendIpConfig -LoadBalancer $alb -Name $frontEndConfigName2
$backendPool=Get-AzureRmLoadBalancerBackendAddressPoolConfig -LoadBalancer $alb -Name $backendPoolName1
$healthprobe=Get-AzureRmLoadBalancerProbeConfig -LoadBalancer $alb -Name $healthProbeName
\$alb | Add-AzureRmLoadBalancerRuleConfig -Name \$lbRuleName2 -BackendAddressPool \$backendPool -FrontendIPConfiguration \$frontendipconfig2 -Protocol \"Tcp\" -FrontendPort 3009 -BackendPort 3009 -Probe \$healthprobe -EnableFloatingIP | Set-AzureRmLoadBalancer
\$alb | Add-AzureRmLoadBalancerRuleConfig -Name \$lbRuleName3 -BackendAddressPool \$backendPool -FrontendIPConfiguration \$frontendipconfig2 -Protocol \"Tcp\" -FrontendPort 3008 -BackendPort 3008 -Probe \$healthprobe -EnableFloatingIP | Set-AzureRmLoadBalancer
\$alb | Add-AzureRmLoadBalancerRuleConfig -Name \$lbRuleName4 -BackendAddressPool \$backendPool -FrontendIPConfiguration \$frontendipconfig2 -Protocol \"Udp\" -FrontendPort 53 -BackendPort 53 -Probe \$healthprobe -EnableFloatingIP | Set-AzureRmLoadBalancer
在每个高可用性对上启用 GSLB
现在,每个 ALB(ALB 1 和 ALB 2)都有两个前端 IP 地址。一个 IP 地址用于 LB 虚拟服务器,另一个用于 GSLB 站点 IP。
HA 1 具有以下前端 IP 地址:
- FrontEndIPofALB1 (用于负载均衡虚拟服务器)
- PIPFORGSLB1 (全局服务器负载均衡的互联网协议地址)
HA 2 具有以下前端 IP 地址:
- FrontEndIPofALB2(用于负载均衡虚拟服务器)
- PIPFORGSLB2 (全局服务器负载均衡的 IP 地址)
针对此场景,需要使用以下命令。
enable ns feature LB GSLB
add service dnssvc PIPFORGSLB1 ADNS 53
add gslb site site1 PIPFORGSLB1 -publicIP PIPFORGSLB1
add gslb site site2 PIPFORGSLB2 -publicIP PIPFORGSLB2
add gslb service site1_gslb_http_svc1 FrontEndIPofALB1 HTTP 80 -publicIP FrontEndIPofALB1 -publicPort 80 -siteName site1
add gslb service site2_gslb_http_svc1 FrontEndIPofALB2 HTTP 80 -publicIP FrontEndIPofALB2 -publicPort 80 -siteName site2
add gslb vserver gslb_http_vip1 HTTP
bind gslb vserver gslb_http_vip1 -serviceName site2_gslb_http_svc1
bind gslb vserver gslb_http_vip1 -serviceName site1_gslb_http_svc1
bind gslb vserver gslb_http_vip1 -domainName www.gslbindia.com -TTL 5
相关资源: