0

Ich migriere eine Lösung von klassischen VMs, für die ich eine Webanwendung über ACLs auf einem Endpunkt verwalte, auf neue VMs von Resource Manager, die in einem virtuellen Netzwerk ausgeführt werden . Mein Ziel ist es, Point-to-Site zu verwenden, damit meine Webanwendung über interne IP-Adressen und nicht über einen Internetanruf auf die VMs zugreifen kann.Hinzufügen eines internen Azure-Lastenausgleichs zu einem vorhandenen virtuellen RM-Netzwerk

Ich habe ein neues virtuelles Netzwerk eingerichtet. Darin habe ich neue RM VMs erstellt und mit meinem Service konfiguriert. Dies läuft alles gut und mein Dienst (Elasticsearch) kann zwischen allen Clustern kommunizieren.

Was ich jetzt tun möchte, ist ein interner Load Balancer zum VN hinzufügen. Ich finde das schwer zu tun, da alle Informationen, die ich finden kann, ein neues Netzwerk und neue VMs im Prozess der Erstellung des Lastenausgleichs erstellen. Auch viele der Befehle (obwohl ich denke, dass dies klassische Modusbefehle sind) fragen nach einem ServiceName. Ich habe keinen Service erstellt.

Ich möchte wirklich die Reihenfolge wissen, in der diese Ressourcen erstellt werden sollten. Um dies zu wiederholen, möchte ich am Ende ein neues virtuelles Netzwerk mit einem internen Load-Balancer haben, zu dem ich eine Point-to-Site-Verbindung erstellen kann, so dass meine Web-App einen Nicht-Internet-Anruf tätigen kann Round-Robin auf eine der VMs im Cluster verteilen lassen.

+0

Benötigen Sie wirklich einen Punkt zur Aufstellungsorteinrichtung. Sobald Sie ein Vnet eingerichtet und die Kommunikation über private Endpunkte VMs/Cloud-Dienste kommunizieren intern richtig? – Aravind

Antwort

0

Wenn Sie den internen Loadbalancer verwenden, füllen Sie den Back-End-Pool, indem Sie dem Vnet eine Netzwerkkarte mit einem LB-Back-End verknüpfen. Wenn Sie eine Webanwendung in ein vnet integrieren, verwalten Sie die Netzwerkkarte nicht direkt, da dies über P2S VPN funktioniert.

Das bedeutet, dass Sie derzeit die interne IP-Adresse einer Webanwendung nicht zu einer ILB hinzufügen können. Wenn Sie zwischen webapps auf einem vnet loadbalance durch interne IP laden möchten, würde ich vorschlagen, in Azure Application Gateway zu suchen. Damit können Sie FQDNs oder interne IPs im Back-End-Pool hinzufügen, wenn Sie das Gateway erstellen, anstatt die NICs zuzuordnen.

Wenn Sie mit einem internen Loadbalancer fortfahren möchten, z. B. beim Loadbalancing von VMs, können Sie dies auch mit einem vorhandenen vnet tun.

Sie können die Schritte auf https://azure.microsoft.com/en-us/documentation/articles/load-balancer-get-started-ilb-arm-ps/ folgen, die ich vermutete, war der Ausgangspunkt für Ihre Frage.

Der Artikel beschreibt die Voraussetzungen für die Erstellung eines Lastenausgleichsmoduls und erstellt dann den Lastenausgleichsmodul selbst. Die ersten beiden Schnipsel sind für eine Teilnetz-Konfiguration zu schaffen und eine mit dieser vnet config:

$backendSubnet = New-AzureRmVirtualNetworkSubnetConfig -Name LB-Subnet-BE -AddressPrefix 10.0.2.0/24 

$vnet= New-AzureRmVirtualNetwork -Name NRPVNet -ResourceGroupName NRP-RG -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $backendSubnet 

Dies ist enthalten, weil der nächste Schritt (Erstellung des Frontend ip config) eine SUBNETID als Eingabe benötigt. Wenn Sie bereits ein vnet mit einem Subnetz zu verwenden, können Sie die beiden Linien oben ersetzen mit

$vnet = Get-AzureRmVirtualNetwork -Name YourNetwork -ResourceGroupName YourRG 

Der Rest der Schritte wäre dann, vorausgesetzt, dass Sie mit dem Frontend-IP auf dem ersten Teilnetz von sein Ihre vnet und der in der Probe verwendete IP-Raum übereinstimmt, die auf Ihrem vnet:

$frontendIP = New-AzureRmLoadBalancerFrontendIpConfig -Name LB-Frontend -PrivateIpAddress 10.0.2.5 -SubnetId $vnet.subnets[0].Id 

$beaddresspool= New-AzureRmLoadBalancerBackendAddressPoolConfig -Name "LB-backend" 
$inboundNATRule1= New-AzureRmLoadBalancerInboundNatRuleConfig -Name "RDP1" -FrontendIpConfiguration $frontendIP -Protocol TCP -FrontendPort 3441 -BackendPort 3389 

$inboundNATRule2= New-AzureRmLoadBalancerInboundNatRuleConfig -Name "RDP2" -FrontendIpConfiguration $frontendIP -Protocol TCP -FrontendPort 3442 -BackendPort 3389 

$healthProbe = New-AzureRmLoadBalancerProbeConfig -Name "HealthProbe" -RequestPath "HealthProbe.aspx" -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2 

$lbrule = New-AzureRmLoadBalancerRuleConfig -Name "HTTP" -FrontendIpConfiguration $frontendIP -BackendAddressPool $beAddressPool -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80 
$NRPLB = New-AzureRmLoadBalancer -ResourceGroupName "NRP-RG" -Name "NRP-LB" -Location "West US" -FrontendIpConfiguration $frontendIP -InboundNatRule $inboundNATRule1,$inboundNatRule2 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe 

die Back-End-Netzwerkkarten Unter der Annahme, bereits erstellt, den folgenden Code für jede NIC verwenden, um sie den Loadbalancer Backend-Pool hinzuzufügen:

$lb= Get-AzureRmLoadBalancer –name NRP-LB -resourcegroupname NRP-RG 
$backend= Get-AzureRmLoadBalancerBackendAddressPoolConfig -name backendpool1 -LoadBalancer $lb 

$nic=Get-AzureRmNetworkInterface –name lb-nic1-be -resourcegroupname NRP-RG 
$nic.IpConfigurations[0].LoadBalancerBackendAddressPools=$backend 
Set-AzureRmNetworkInterface -NetworkInterface $nic 
+0

Ich habe derzeit meine VM Nics im Front-End-Pool meines VN. Ich hatte angenommen, dass das Frontend die Anwendungsschicht war und das Backend für so etwas wie eine Datenbankschicht verwendet werden konnte. In diesem Fall würde ich nur das Frontend verwenden. Meine Web-App, um klar zu sein, ist nicht Teil der VN. Deshalb wollte ich den Point-to-Site erstellen. Ich hatte angenommen, ich könnte ein lb an der Front des VN haben, und direkte Anfragen an die VMs von dort. Dies ist, was ich dachte, wurde durch das Bild auf den Artikel impliziert. Muss ich eine einzelne NIC auf der Vorderseite und dann ein lb haben, um nach hinten zu routen? – John

+0

Was meinst du mit 'der Front-End-Pool meiner VN'? Ist das ein Subnetz? Die Begriffe Frontend und Backend im Load-Balancer-Kontext haben nichts mit Anwendungslayout (Backends/Datenbanken/etc) zu tun, sondern mit der Tatsache, dass ein Loadbalancer Requests auf dem Frontend empfängt und diese an die seinem Backend-Pool zugeordneten Netzwerkschnittstellen weiterleitet. Diese Loadbalancer-Konfiguration kann an beliebiger Stelle im vnet erfolgen. – Niels