使用PowerShell命令配置具有多个IP地址和网卡的高可用性设置
可以在Azure上的主动——被动高可用性(HA)设置中部署一对具有多个网卡的Citrix ADC VPX实例。每个网卡都可以包含多个IP地址。
主动-被动部署需要:
- 哈独立网络配置(inc)配置
- 处于直接服务器返回(DSR)模式的Azure负载均衡器(ALB)
所有流量均通过主节点。在主节点发生故障前,辅助节点一直处于备用模式。
注意
要在Azure云上执行Citrix ADC VPX高可用性部署,您需要可在两个高可用性节点之间移动的浮动公用IP (PIP)。Azure负载均衡器(ALB)提供浮动PIP,在发生故障转移时自动移动到第二个节点。
示意图:主动-被动部署体系结构示例
在主动——被动部署中,铝青铜浮动公用IP (PIP)地址作为VIP地址添加在每个VPX节点中。在ha-inc配置中,vip地址是浮动的,而snip地址是实例特定的。
铝青铜通过每5秒发送一次运行状况探测来监视每个VPX实例,并将流量仅重定向至按固定时间间隔发送运行状况探测响应的实例。因此,在ha设置中,主节点响应运行状况探测,而辅助节点不响应。如果主实例错过两个连续的运行状况探测,则alb不会将流量重定向至该实例。发生故障转移时,新的主实例开始响应运行状况探测,且alb将流量重定向至该实例。标准VPX高可用性故障转移时间为三秒。切换流量可能需要的故障转移总时间最长为 13 秒。
可以通过以下两种方式在主动-被动高可用性设置中部署VPX对:
- Citrix ADC VPX标准高可用性模板:此选项用于配置采用默认选项(网卡三个子网和六个)的ha对。
- Windows PowerShell命令:此选项用于根据您的子网和网卡要求来配置高可用性对。
本主题介绍了如何使用PowerShell命令在主动-被动高可用性设置中部署VPX对。如果要使用Citrix ADC VPX标准HA模板,请参阅使用多个IP地址和网卡配置ha设置。
使用PowerShell命令配置HA-INC节点
场景:HA-INC PowerShell部署
在此场景中,可以使用表中给出的拓扑部署Citrix ADC VPX对。每个VPX实例均包含三个网卡,每个网卡均部署在不同的子网中。每个网卡均分配了一个IP配置。
铝青铜 | VPX1 | VPX2 |
---|---|---|
ALB与公用ip3 (pip3)关联 | 管理IP配置了IPConfig1,其中包括一个公用IP (pip1)和一个专用IP (12.5.2.24);nic1;Mgmtsubnet = 12.5.2.0/24 | 管理IP配置了IPConfig5,其中包括一个公用IP (pip3)和一个专用IP (12.5.2.26); nic4; Mgmtsubnet = 12.5.2.0/24 |
配置的lb规则和端口包括HTTP (80), ssl(443),运行状况探测(9000) | 客户端IP配置了IPConfig3,其中包括一个专用IP (12.5.1.27); nic2;FrontEndsubet = 12.5.1.0/24 | 客户端IP配置了IPConfig7,其中包括一个专用IP (12.5.1.28); nic5; FrontEndsubet = 12.5.1.0/24 |
- | 服务器端IP配置了IPConfig4,其中包括一个专用IP (12.5.3.24);nic3; BackendSubnet = 12.5.3.0/24 | 服务器端IP配置了IPConfig8,其中包括一个专用IP (12.5.3.28); nic6; BackendSubnet = 12.5.3.0/24 |
- | NSG的规则和端口包括:ssh (22), http (80), https (443) | - |
参数设置
在此场景中将使用以下参数设置。
$locName= "东南亚"
$rgName = " multi - multi - rg "
美元nicName1 = " VM1-NIC1 "
$nicName2 = " VM1-NIC2 "
美元nicName3 = " VM1-NIC3 "
$nicName4 = " VM2-NIC1 "
美元nicName5 = " VM2-NIC2 "
$nicName6 = " VM2-NIC3 "
$vNetName = " Azure-MultiIP-ALB-vnet "
美元vNetAddressRange = " 12.5.0.0/16 "
美元frontEndSubnetName = " frontEndSubnet "
美元frontEndSubnetRange = " 12.5.1.0/24 "
美元mgmtSubnetName = " mgmtSubnet "
美元mgmtSubnetRange = " 12.5.2.0/24 "
$backEndSubnetName = " backEndSubnet "
$backEndSubnetRange = " 12.5.3.0/24 "
$prmStorageAccountName = " multiip多国icbstorage "
$avSetName = " multi - avset "
美元vmSize = " Standard_DS4_V2 "
$publisher = " Citrix "
$offer = " netscalervpx-120 "
$sku = " netscalerbyol "
最新美元version = " "
美元pubIPName1 = " VPX1MGMT "
美元pubIPName2 = " VPX2MGMT "
美元pubIPName3 = " ALBPIP "
美元domName1 = " vpx1dns "
美元domName2 = " vpx2dns "
美元domName3 = " vpxalbdns "
美元vmNamePrefix = " VPXMultiIPALB "
美元osDiskSuffix1 = " osmultiipalbdiskdb1 "
美元osDiskSuffix2 = " osmultiipalbdiskdb2 "
美元lbName = " MultiIPALB "
美元frontEndConfigName1 = " FrontEndIP "
美元backendPoolName1 = " BackendPoolHttp "
美元lbRuleName1 = " LBRuleHttp "
美元healthProbeName = " HealthProbe "
美元nsgName = " NSG-MultiIP-ALB "
$ rule1Name =“入站http”
美元rule2Name = " Inbound-HTTPS "
美元rule3Name = " Inbound-SSH "
要完成部署,请使用PowerShell命令完成以下步骤:
- 创建资源组、存储帐户和可用性集
- 创建网络安全组并添加规则
- 创建虚拟网络和三个子网
- 创建公用IP地址地址
- 为vpx1创建IP配置
- 为vpx2创建IP配置
- 为vpx1创建网卡
- 为vpx2创建网卡
- 创建vpx1
- 创建vpx2
- 创建alb
创建资源组、存储帐户和可用性集。
New-AzureRmResourceGroup -Name $rgName -Location $locName $prmStorageAccount=New-AzureRMStorageAccount -Name $prmStorageAccountName -ResourceGroupName $rgName -Type Standard_LRS -Location $locName $avSet=New-AzureRMAvailabilitySet -Name $avSetName -ResourceGroupName $rgName -Location $locName
创建网络安全组并添加规则。
$rule1 = New-AzureRmNetworkSecurityRuleConfig -Name $rule1Name -Description "允许HTTP" -Access Allow -Protocol Tcp -Direction Inbound -Priority 101 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 80 $rule2 = New-AzureRmNetworkSecurityRuleConfig -Name $rule2Name -Description "允许HTTPS" -Access Allow -Protocol Tcp -Direction Inbound -Priority 110 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix *-DestinationPortRange 443 $rule3 = New-AzureRmNetworkSecurityRuleConfig -Name $rule3Name -Description "允许SSH" -Access Allow -Protocol Tcp -Direction Inbound -Priority 120 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 22 $nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $rgName -Location $locName -Name $nsgName -SecurityRules $rule1,$rule2,$rule3
创建虚拟网络和三个子网。
$frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $frontEndSubnetName -AddressPrefix $frontEndSubnetRange(此参数值应根据您的需求而定)$mgmtSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $mgmtSubnetRange $backendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $backEndSubnetName -AddressPrefix $backEndSubnetRange $vnet =New-AzureRmVirtualNetwork -Name $vNetName -ResourceGroupName $rgName -Location $locName -AddressPrefix$vNetAddressRange -Subnet $frontendSubnet,$backendSubnet, $mgmtSubnet $subnetName =" frontendSubnet " $subnet1=$vnet.Subnets|?{$_。名称-eq $subnetName} $subnetName="backEndSubnet" $subnet2=$vnet.Subnets|?{$_. subnets} $subnet2= "backEndSubnet"Name -eq $subnetName} $subnetName="mgmtSubnet" $subnet3=$vnet.Subnets|?{$_. subnet3= "mgmtSubnet"-eq $subnetName}
创建公用IP地址地址。
$pip1= new - azurermpublicicipaddress -Name $pubIPName1 -ResourceGroupName $rgName -DomainNameLabel $domName1 -Location $locName -AllocationMethod Dynamic $pip2= new - azurermpublicicipaddress -Name $pubIPName2 -ResourceGroupName $rgName -DomainNameLabel $domName2 -Location $locName -AllocationMethod Dynamic $pip3= new - azurermpublicicipaddress -Name $pubIPName3 -ResourceGroupName $rgName -DomainNameLabel $domName3 -Location $locName -AllocationMethod Dynamic
为vpx1创建IP配置。
$IpConfigName1 =" IPConfig1" $IPAddress=" 12.5.2.24" $IPConfig1=新- azurermnetworkinterfaceipconfig -Name $IpConfigName1 -子网$subnet3 - privateeipaddress $IPAddress - publicipp1 -主$IPConfigName3="IPConfig-3" $IPConfig3=新- azurermnetworkinterfaceipconfig -Name $IPConfig3 -子网$subnet1 - privateeipaddress $IPAddress -主$IPConfigName4 =" IPConfig-4" $IPAddress=" 12.5.3.24" $IPConfig4 =新- azurermnetworkinterfaceipconfig-Subnet $subnet2 -PrivateIpAddress $IPAddress -主子网
为vpx2创建IP配置。
IpConfigName5 =“IPConfig5 IPAddress美元= " 12.5.2.26”IPConfig5 = New-AzureRmNetworkInterfaceIpConfig - name IpConfigName5美元美元子网subnet3 -PrivateIpAddress IPAddress -PublicIpAddress pip2美元主要IPConfigName7 =“IPConfig-7 IPAddress美元=“12.5.1.28 IPConfig7 = New-AzureRmNetworkInterfaceIpConfig - name IPConfigName7美元美元子网subnet1 -PrivateIpAddress IPAddress主要IPConfigName8美元=“IPConfig-8 IPAddress美元=“12.5.3.28”IPConfig8 = New-AzureRmNetworkInterfaceIpConfig - name IPConfigName8美元子网$subnet2 -PrivateIpAddress $IPAddress -Primary
为vpx1创建网卡。
$nic1=New-AzureRmNetworkInterface -Name $nicName1 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig1 -NetworkSecurityGroupId $nsg。Id$nic2=New-AzureRmNetworkInterface -Name $nicName2 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig3 -NetworkSecurityGroupId $nsg.Id $nic3=New-AzureRmNetworkInterface -Name $nicName3 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig4 -NetworkSecurityGroupId $nsg.Id
为vpx2创建网卡。
$nic4=New-AzureRmNetworkInterface -Name $nicName4 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig5 -NetworkSecurityGroupId $nsg。Id$nic5=New-AzureRmNetworkInterface -Name $nicName5 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig7 -NetworkSecurityGroupId $nsg.Id $nic6=New-AzureRmNetworkInterface -Name $nicName6 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig8 -NetworkSecurityGroupId $nsg.Id
创建vpx1。
此步骤包括以下子步骤:
- 创建vm配置对象
- 设置凭据、操作系统和映像
- 添加网卡
指定操作系统磁盘并创建vm
$suffixNumber = 1 $vmName=$vmNamePrefix + $suffixNumber $vmConfig=New-AzureRMVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avSet。Id $cred=Get-Credential -Message "输入VPX登录的名称和密码。"$vmConfig=Set-AzureRMVMOperatingSystem -VM $vmConfig -Linux -ComputerName $vmName - credd $vmConfig=Set-AzureRMVMSourceImage -VM $vmConfig -PublisherName $publisher -Offer $offer -Skus $sku -Version $version $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$osDiskName=$vmName + "-" + $osDiskSuffix1 $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 $locName
创建vpx2。
' ' ' $suffixNumber=2 $vmName=$vmNamePrefix + $suffixNumber $vmConfig=New-AzureRMVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avSet。Id $cred=Get-Credential -Message "输入VPX登录的名称和密码。"$vmConfig=Set-AzureRMVMOperatingSystem -VM $vmConfig -Linux -ComputerName $vmName - credd $vmConfig=Set-AzureRMVMSourceImage -VM $vmConfig -PublisherName $publisher -Offer $offer -Skus $sku -Version $version $vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic4。Id -Primary $vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic5。Id $vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic6。Id$osDiskName=$vmName + "-" + $osDiskSuffix2 $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 $locName ```
要查看分配给网卡的专用和公用IP地址,请键入以下命令:
“‘nic1美元。IPConfig nic2美元。IPConfig nic3美元。IPConfig nic4美元。IPConfig nic5美元。IPConfig nic6美元。IPConfig < !--NeedCopy--> ```
创建Azure负载平衡(ALB)。
此步骤包括以下子步骤:
- 创建前端IP地址配置
- 创建运行状况探测
- 创建后端地址池
- 创建负载平衡规则(http和ssl)
- 使用前端IP配置,后端地址池和lb规则创建alb
将IP地址配置与后端池相关联
$frontEndIP1=New-AzureRmLoadBalancerFrontendIpConfig -Name $frontEndConfigName1 - publicicipaddress $pip3
$healthProbe= new - azurermloadbalancerprobecconfig -Name $healthProbeName -Protocol Tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2 .单击“确定”
$beAddressPool1=New-AzureRmLoadBalancerBackendAddressPoolConfig -Name $backendPoolName1
$lbRule1=New-AzureRmLoadBalancerRuleConfig -Name $lbRuleName1 -FrontendIpConfiguration $frontEndIP1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80 -EnableFloatingIP
$lb=New-AzureRmLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $locName -FrontendIpConfiguration $frontEndIP1 -LoadBalancingRule $lbRule1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe
美元nic2.IpConfigurations [0] .LoadBalancerBackendAddressPools.Add ($ lb.BackendAddressPools [0])
美元nic5.IpConfigurations [0] .LoadBalancerBackendAddressPools.Add ($ lb.BackendAddressPools [0])
磅=美元磅| Set-AzureRmLoadBalancer
$nic2=$nic2 | Set-AzureRmNetworkInterface
$nic5=$nic5 | Set-AzureRmNetworkInterface
成功部署了Citrix ADC VPX对后,登录每个VPX实例以配置HA-INC,剪断和VIP地址。
键入以下命令以添加ha节点。
add ha node 1 PeerNodeNSIP -inc启用
针对VPX1 (NIC2)和VPX2 (NIC5),将客户端网卡的专用IP地址添加为剪断
add nsip privateIPofNIC2 255.255.255.0 -type SNIP
add nsip privateIPofNIC5 255.255.255.0 -type SNIP
在具有alb的前端IP地址(公用IP)的主节点上添加负载平衡虚拟服务器。
add lb virtual server v1 HTTP FrontEndIPofALB 80
相关资源: