在活动-备用高可用性设置上配置 GSLB

可以通过三个步骤在 Azure 上的主动备用 HA 部署上配置全局服务器负载平衡 (GSLB):

  1. 在每个 GSLB 站点上创建 VPX HA 对。有关配置具有多个 IP 地址和 NIC 的高可用性设置如何创建 HA 对的信息,请参阅。

  2. 使用前端 IP 地址和规则配置 Azure 负载平衡器 (ALB) 以允许 GSLB 和 DNS 流量。

    此步骤涉及以下子步骤。有关用于完成这些子步骤的 PowerShell 命令,请参阅本节中的方案。

    a. 为 GSLB 网站创建前端 IPConfig。

    b. 在 HA 中使用 NIC 1/1 节点的 IP 地址创建后端地址池。

    c. 为以下内容创建负载平衡规则:

    TCP/3011 – gslb communication
    TCP/3010 - gslb communication
    UDP/53-DNS 通信
    

    d. 将后端地址池与步骤 c 中创建的 LB 规则相关联。

  3. 在每个 HA 对上启用 GSLB。

情景

此方案包括两个站点-站点 1 和站点 2。每个站点都有一个 HA 对(HA1 和 HA2),配置了多个网卡、多个 IP 地址和 GSLB。

图: 关于 Azure 上主动静态 HA 部署的 GLSB

本地化后的图片

在这种情况下,每个虚拟机都有三个网卡-NIC 0/1、1/1 和 1/2。这些 NIC 配置为用于以下用途。

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 3011 -BackendPort 3011 -Probe $healthprobe -EnableFloatingIP  | Set-AzureRmLoadBalancer


$alb | Add-AzureRmLoadBalancerRuleConfig -Name $lbRuleName3 -BackendAddressPool $backendPool -FrontendIPConfiguration  $frontendipconfig2 -Protocol "Tcp" -FrontendPort 3010 -BackendPort 3010 -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 有两个前端 IP 地址:ALB 1 和 ALB 2。一个 IP 地址用于 LB 虚拟服务器,另一个用于 GSLB 站点 IP。

HA 1 具有以下前端 IP 地址:

  • FrontEndIPofALB1 (适用于 LB 虚拟服务器)
  • PIPFORGSLB1 (GSLB IP)

HA 2 具有以下前端 IP 地址:

  • FrontEndIPofALB2 (适用于 LB 虚拟服务器)
  • PIPFORGSLB2 (GSLB IP)

以下命令用于此方案。

```
使能 ns 功能 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
```

相关资源

在 Citrix ADC VPX 实例上配置 GSLB

全局服务器负载平衡