在 Citrix ADC VPX 实例上配置 GSLB
配置为全局服务器负载平衡 (GSLB) 的 Citrix ADC 设备通过防止广域网 (WAN) 中的故障点来提供灾难恢复和应用程序的持续可用性。 GSLB 可以通过将客户端请求引导至最近或性能最佳的数据中心,或者在发生中断时引导至正常运行的数据中心,实现跨数据中心的负载平衡。
本节介绍如何使用 Windows PowerShell 命令在 Microsoft Azure 环境中两个站点上的 VPX 实例上启用 GSLB。
注意:
有关 GSLB 的更多信息,请参阅 全局服务器负载平衡。
您可以分两个步骤在 Azure 上的 Citrix ADC VPX 实例上配置 GSLB:
注意:
有关配置多个 NIC 和 IP 地址的详细信息,请参见: 使用 PowerShell 命令为独立模式下的 Citrix ADC VPX 实例配置多个 IP 地址
场景
此场景包括两个站点 - 站点 1 和站点 2。 每个站点都有一个配置了多个 NIC、多个 IP 地址和 GSLB 的 VM(VM1 和 VM2)。
图。 GSLB 设置在两个站点(站点 1 和站点 2)上实施。
在此场景中,每个 VM 都有三个 NIC - NIC 0/1、1/1 和 1/2。 每个 NIC 都可以有多个专用 IP 地址和公用 IP 地址。 这些 NIC 配置为用于以下用途。
- NIC 0/1:服务管理流量
- NIC 1/1:服务客户端流量
- NIC 1/2:与后端服务器通信
有关此场景中每个 NIC 上配置的 IP 地址的信息,请参阅 IP 配置详细信息 部分。
参数
下面是本文档中此场景的示例参数设置。
$location="West Central US"
$vnetName="NSVPX-vnet"
$RGName="multiIP-RG"
$prmStorageAccountName="multiipstorageaccnt"
$avSetName="MultiIP-avset"
$vmSize="Standard\_DS3\_V2"
<!--NeedCopy-->
注意:
VPX 实例的最低要求是 2 个 vCPU 和 2GB RAM。
$publisher="citrix"
$offer="netscalervpx111"
$sku="netscalerbyol"
$version="latest"
$vmNamePrefix="MultiIPVPX"
$nicNamePrefix="MultiipVPX"
$osDiskSuffix="osdiskdb"
$numberOfVMs=1
$ipAddressPrefix="10.0.0."
$ipAddressPrefix1="10.0.1."
$ipAddressPrefix2="10.0.2."
$pubIPName1="MultiIP-pip1"
$pubIPName2="MultiIP-pip2"
$IpConfigName1="IPConfig1"
$IPConfigName2="IPConfig-2"
$IPConfigName3="IPConfig-3"
$IPConfigName4="IPConfig-4"
$frontendSubnetName="default"
$backendSubnetName1="subnet\_1"
$backendSubnetName2="subnet\_2"
$suffixNumber=10
<!--NeedCopy-->
创建 VM
按照步骤 1-10 使用 PowerShell 命令创建具有多个 NIC 和多个 IP 地址的 VM1:
1. 创建资源组
2. 创建存储帐户
3\。 创建可用性集
4. 创建虚拟网络
5\。 创建公共 IP 地址
6\。 创建 NIC
7. 创建 VM 配置对象
9\。 添加 NIC
完成创建 VM1 的所有步骤和命令后,重复执行这些步骤来创建 VM2 并为其设置特定参数。
创建资源组
New-AzureRMResourceGroup -Name $RGName -Location $location
<!--NeedCopy-->
创建存储帐户
$prmStorageAccount=New-AzureRMStorageAccount -Name $prmStorageAccountName -ResourceGroupName $RGName -Type Standard_LRS -Location $location
<!--NeedCopy-->
创建可用性集
$avSet=New-AzureRMAvailabilitySet -Name $avSetName -ResourceGroupName $RGName -Location $location
<!--NeedCopy-->
创建虚拟网络
1. 添加子网。
$subnet1=New-AzureRmVirtualNetworkSubnetConfig -Name $frontendSubnetName -AddressPrefix "10.0.0.0/24"
$subnet2=New-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName1 -AddressPrefix "10.0.1.0/24"
$subnet3=New-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName2 -AddressPrefix "10.0.2.0/24"
<!--NeedCopy-->
2. 添加虚拟网络对象。
$vnet=New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $RGName -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $subnet1, $subnet2, $subnet3
<!--NeedCopy-->
3\。 检索子网。
$frontendSubnet=$vnet.Subnets|?{$_.Name -eq $frontendSubnetName}
$backendSubnet1=$vnet.Subnets|?{$_.Name -eq $backendSubnetName1}
$backendSubnet2=$vnet.Subnets|?{$_.Name -eq $backendSubnetName2}
<!--NeedCopy-->
创建公用 IP 地址
$pip1=New-AzureRmPublicIpAddress -Name $pubIPName1 -ResourceGroupName $RGName -Location $location -AllocationMethod Dynamic
$pip2=New-AzureRmPublicIpAddress -Name $pubIPName2 -ResourceGroupName $RGName -Location $location -AllocationMethod Dynamic
<!--NeedCopy-->
创建 NIC
创建 NIC 0/1
$nic1Name=$nicNamePrefix + $suffixNumber + "-Mgmnt"
$ipAddress1=$ipAddressPrefix + $suffixNumber
$IPConfig1=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName1 -SubnetId $frontendSubnet.Id -PublicIpAddress $pip1 -PrivateIpAddress $ipAddress1 -Primary
$nic1=New-AzureRMNetworkInterface -Name $nic1Name -ResourceGroupName $RGName -Location $location -IpConfiguration $IpConfig1
<!--NeedCopy-->
创建 NIC 1/1
$nic2Name $nicNamePrefix + $suffixNumber + "-frontend"
$ipAddress2=$ipAddressPrefix1 + ($suffixNumber)
$ipAddress3=$ipAddressPrefix1 + ($suffixNumber + 1)
$IPConfig2=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName2 -PublicIpAddress $pip2 -SubnetId $backendSubnet1.Id -PrivateIpAddress $ipAddress2 -Primary
$IPConfig3=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName3 -SubnetId $backendSubnet1.Id -PrivateIpAddress $ipAddress3
nic2=New-AzureRMNetworkInterface -Name $nic2Name -ResourceGroupName $RGName -Location $location -IpConfiguration $IpConfig2, $IpConfig3
<!--NeedCopy-->
创建 NIC 1/2
$nic3Name=$nicNamePrefix + $suffixNumber + "-backend"
$ipAddress4=$ipAddressPrefix2 + ($suffixNumber)
$IPConfig4=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName4 -SubnetId $backendSubnet2.Id -PrivateIpAddress $ipAddress4 -Primary
$nic3=New-AzureRMNetworkInterface -Name $nic3Name -ResourceGroupName $RGName -Location $location -IpConfiguration $IpConfig4
<!--NeedCopy-->
创建 VM 配置对象
$vmName=$vmNamePrefix
$vmConfig=New-AzureRMVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avSet.Id
<!--NeedCopy-->
获取凭据并设置操作系统属性
$cred=Get-Credential -Message "Type the name and password for VPX login."
$vmConfig=Set-AzureRMVMOperatingSystem -VM $vmConfig -Linux -ComputerName $vmName -Credential $cred
$vmConfig=Set-AzureRMVMSourceImage -VM $vmConfig -PublisherName $publisher -Offer $offer -Skus $sku -Version $version
<!--NeedCopy-->
添加 NIC
$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic1.Id -Primary
$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic2.Id
$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic3.Id
<!--NeedCopy-->
指定操作系统磁盘并创建 VM
$osDiskName=$vmName + "-" + $osDiskSuffix
$osVhdUri=$prmStorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" +$osDiskName + ".vhd"
$vmConfig=Set-AzureRMVMOSDisk -VM $vmConfig -Name $osDiskName -VhdUri $osVhdUri -CreateOption fromImage
Set-AzureRmVMPlan -VM $vmConfig -Publisher $publisher -Product $offer -Name $sku
New-AzureRMVM -VM $vmConfig -ResourceGroupName $RGName -Location $location
<!--NeedCopy-->
注意:
重复“使用 PowerShell 命令创建多 NIC 虚拟机”中列出的步骤 1-10,以使用特定于 VM2 的参数创建 VM2。
IP 配置详细信息
使用以下 IP 地址。
表 1。 VM1 中使用的 IP 地址
NIC | 专用 IP | 公用 IP (PIP) | 说明 |
---|---|---|---|
0/1 | 10.0.0.10 | PIP1 | 配置为 NSIP(管理 IP) |
1/1 | 10.0.1.10 | PIP2 | 配置为 SNIP/GSLB 站点 IP |
- | 10.0.1.11 | - | 配置为 LB 服务器 IP。 公用 IP 不是必需的 |
1/2 | 10.0.2.10 | - | 配置为 SNIP 以用于向服务发送监视探测;公用 IP 不是必需的 |
表 2. VM2 中使用的 IP 地址
NIC | 内部 IP | 公用 IP (PIP) | 说明 |
---|---|---|---|
0/1 | 20.0.0.10 | PIP4 | 配置为 NSIP(管理 IP) |
1/1 | 20.0.1.10 | PIP5 | 配置为 SNIP/GSLB 站点 IP |
- | 20.0.1.11 | - | 配置为 LB 服务器 IP。 公用 IP 不是必需的 |
1/2 | 20.0.2.10 | - | 配置为 SNIP 以用于向服务发送监视探测;公用 IP 不是必需的 |
以下是此场景的示例配置,显示了通过 Citrix ADC VPX CLI 为 VM1 和 VM2 创建的 IP 地址和初始 LB 配置。
这是 VM1 上的示例配置。
add ns ip 10.0.1.10 255.255.255.0 -mgmtAccess ENABLED
Add nsip 10.0.2.10 255.255.255.0
add service svc1 10.0.1.10 ADNS 53
add lb vserver v1 HTTP 10.0.1.11 80
add service s1 10.0.2.120 http 80
Add service s2 10.0.2.121 http 80
Bind lb vs v1 s[1-2]
<!--NeedCopy-->
这是 VM2 上的示例配置。
add ns ip 20.0.1.10 255.255.255.0 -mgmtAccess ENABLED
Add nsip 20.0.2.10 255.255.255.0
add service svc1 20.0.1.10 ADNS 53
add lb vserver v1 HTTP 20.0.1.11 80
Add service s1 20.0.2.90 http 80
Add service s2 20.0.2.91 http 80
Bind lb vs v1 s[1-2]
<!--NeedCopy-->
配置 GSLB 站点和其他设置
执行以下主题中所述任务来配置两个 GSLB 站点和其他必要设置:
有关更多信息,请参阅此支持文章: https://support.citrix.com/article/CTX110348
这是 VM1 和 VM2 上的 GSLB 配置示例。
enable ns feature LB GSLB
add gslb site site1 10.0.1.10 -publicIP PIP2
add gslb site site2 20.0.1.10 -publicIP PIP5
add gslb service site1_gslb_http_svc1 10.0.1.11 HTTP 80 -publicIP PIP3 -publicPort 80 -siteName site1
add gslb service site2_gslb_http_svc1 20.0.1.11 HTTP 80 -publicIP PIP6 -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
<!--NeedCopy-->
您已在 Azure 上运行的 Citrix ADC VPX 实例上配置 GSLB。