Belastningsutjämning för flera IP-konfigurationer med PowerShell
Den här artikeln beskriver hur du använder Azure Load Balancer med flera IP-adresser i ett sekundärt nätverksgränssnitt (NIC). I det här scenariot har vi två virtuella datorer som kör Windows, var och en med ett primärt och ett sekundärt nätverkskort. Var och en av de sekundära nätverkskorten har två IP-konfigurationer. Varje virtuell dator är värd för både webbplatser contoso.com och fabrikam.com. Varje webbplats är bunden till en av IP-konfigurationerna på det sekundära nätverkskortet. Vi använder Azure Load Balancer för att exponera två IP-adresser för klientdelen, en för varje webbplats, för att distribuera trafik till respektive IP-konfiguration för webbplatsen. I det här scenariot används samma portnummer för båda klientdelerna och båda IP-adresserna för serverdelspoolen.
Steg för att belastningsutjämning på flera IP-konfigurationer
Kommentar
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Följ stegen nedan för att uppnå det scenario som beskrivs i den här artikeln:
Installera Azure PowerShell. Se Installera och konfigurera Azure PowerShell för information om hur du installerar den senaste versionen av Azure PowerShell, väljer din prenumeration och loggar in på ditt konto.
Skapa en resursgrupp med hjälp av följande inställningar:
$location = "westcentralus". $myResourceGroup = "contosofabrikam"
Mer information finns i Steg 2 i Skapa en resursgrupp.
Skapa en tillgänglighetsuppsättning som ska innehålla dina virtuella datorer. I det här scenariot använder du följande kommando:
New-AzAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset" -Location "West Central US"
Följ anvisningarna i steg 3 till 5 i artikeln Skapa en virtuell Windows-dator för att förbereda skapandet av en virtuell dator med ett enda nätverkskort. Kör steg 6.1 och använd följande i stället för steg 6.2:
$availset = Get-AzAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset" New-AzVMConfig -VMName "VM1" -VMSize "Standard_DS1_v2" -AvailabilitySetId $availset.Id
Slutför sedan Skapa en virtuell Windows-dator steg 6.3 till och med 6.8.
Lägg till en andra IP-konfiguration till var och en av de virtuella datorerna. Följ anvisningarna i artikeln Tilldela flera IP-adresser till virtuella datorer . Använd följande konfigurationsinställningar:
$NicName = "VM1-NIC2" $RgName = "contosofabrikam" $NicLocation = "West Central US" $IPConfigName4 = "VM1-ipconfig2" $Subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "mySubnet" -VirtualNetwork $myVnet
Du behöver inte associera de sekundära IP-konfigurationerna med offentliga IP-adresser i den här självstudien. Redigera kommandot för att ta bort den offentliga IP-associationsdelen.
Slutför steg 4 till och med 6 i den här artikeln igen för VM2. Se till att ersätta namnet på den virtuella datorn till VM2 när du gör detta. Du behöver inte skapa ett virtuellt nätverk för den andra virtuella datorn. Du kan skapa ett nytt undernät baserat på ditt användningsfall.
Skapa två offentliga IP-adresser och lagra dem i lämpliga variabler enligt följande:
$publicIP1 = New-AzPublicIpAddress -Name PublicIp1 -ResourceGroupName contosofabrikam -Location 'West Central US' -AllocationMethod Dynamic -DomainNameLabel contoso $publicIP2 = New-AzPublicIpAddress -Name PublicIp2 -ResourceGroupName contosofabrikam -Location 'West Central US' -AllocationMethod Dynamic -DomainNameLabel fabrikam $publicIP1 = Get-AzPublicIpAddress -Name PublicIp1 -ResourceGroupName contosofabrikam $publicIP2 = Get-AzPublicIpAddress -Name PublicIp2 -ResourceGroupName contosofabrikam
Skapa två IP-konfigurationer för klientdelen:
$frontendIP1 = New-AzLoadBalancerFrontendIpConfig -Name contosofe -PublicIpAddress $publicIP1 $frontendIP2 = New-AzLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2
Skapa serverdelsadresspooler, en avsökning och dina belastningsutjämningsregler:
$beaddresspool1 = New-AzLoadBalancerBackendAddressPoolConfig -Name contosopool $beaddresspool2 = New-AzLoadBalancerBackendAddressPoolConfig -Name fabrikampool $healthProbe = New-AzLoadBalancerProbeConfig -Name HTTP -RequestPath 'index.html' -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2 $lbrule1 = New-AzLoadBalancerRuleConfig -Name HTTPc -FrontendIpConfiguration $frontendIP1 -BackendAddressPool $beaddresspool1 -Probe $healthprobe -Protocol Tcp -FrontendPort 80 -BackendPort 80 $lbrule2 = New-AzLoadBalancerRuleConfig -Name HTTPf -FrontendIpConfiguration $frontendIP2 -BackendAddressPool $beaddresspool2 -Probe $healthprobe -Protocol Tcp -FrontendPort 80 -BackendPort 80
När du har skapat dessa resurser skapar du lastbalanseraren:
$mylb = New-AzLoadBalancer -ResourceGroupName contosofabrikam -Name mylb -Location 'West Central US' -FrontendIpConfiguration $frontendIP1 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
Lägg till den andra serverdelsadresspoolen och IP-konfigurationen för klientdelen i den nyligen skapade lastbalanseraren:
$mylb = Get-AzLoadBalancer -Name "mylb" -ResourceGroupName $myResourceGroup | Add-AzLoadBalancerBackendAddressPoolConfig -Name fabrikampool | Set-AzLoadBalancer $mylb | Add-AzLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2 | Set-AzLoadBalancer Add-AzLoadBalancerRuleConfig -Name HTTP -LoadBalancer $mylb -FrontendIpConfiguration $frontendIP2 -BackendAddressPool $beaddresspool2 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80 | Set-AzLoadBalancer
Kommandona nedan hämtar nätverkskorten och lägger sedan till båda IP-konfigurationerna för varje sekundärt nätverkskort till serverdelsadresspoolen för lastbalanseraren:
$nic1 = Get-AzNetworkInterface -Name "VM1-NIC2" -ResourceGroupName "MyResourcegroup"; $nic2 = Get-AzNetworkInterface -Name "VM2-NIC2" -ResourceGroupName "MyResourcegroup"; $nic1.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[0]); $nic1.IpConfigurations[1].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[1]); $nic2.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[0]); $nic2.IpConfigurations[1].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[1]); $mylb = $mylb | Set-AzLoadBalancer $nic1 | Set-AzNetworkInterface $nic2 | Set-AzNetworkInterface
Slutligen måste du konfigurera DNS-resursposter så att de pekar på respektive klientdels-IP-adress för lastbalanseraren. Du kan vara värd för dina domäner i Azure DNS. Mer information om hur du använder Azure DNS med Load Balancer finns i Använda Azure DNS med andra Azure-tjänster.
Nästa steg
- Läs mer om hur du kombinerar belastningsutjämningstjänster i Azure i Använda belastningsutjämningstjänster i Azure.
- Lär dig hur du kan använda olika typer av loggar i Azure för att hantera och felsöka lastbalanserare i Azure Monitor-loggar för Azure Load Balancer.