Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: ✔️ Windows-VMs ✔️ Einheitliche Skalierungsgruppen
Lastenausgleich bietet eine höhere Verfügbarkeitsebene, indem eingehende Anforderungen auf mehrere virtuelle Computer verteilt werden. In diesem Lernprogramm erfahren Sie mehr über die verschiedenen Komponenten des Azure-Lastenausgleichs, die Datenverkehr verteilen und hohe Verfügbarkeit bieten. Hier erfahren Sie, wie Sie:
- Erstellen einer Azure Load Balancer-Instanz
- Erstellen einer Integritätsprüfung für den Load Balancer
- Erstellen von Verkehrsregeln für den Lastenverteiler
- Verwenden der benutzerdefinierten Skripterweiterung zum Erstellen einer einfachen IIS-Website
- Erstellen von virtuellen Computern und Anfügen an einen Load Balancer
- Sehen Sie einen Lastenausgleich in Betrieb
- Hinzufügen und Entfernen von VMs aus einem Lastenausgleichsmodul
Übersicht über das Azure-Lastenausgleichsmodul
Ein Azure-Lastenausgleichsmodul ist ein Lastenausgleich für Layer-4 (TCP, UDP), der eine hohe Verfügbarkeit bietet, indem eingehender Datenverkehr auf fehlerfreie VMs verteilt wird. Ein Integritätstest zum Lastenausgleich überwacht einen bestimmten Port auf jedem virtuellen Computer und verteilt nur den Datenverkehr an eine betriebsbereite VM.
Sie definieren eine Front-End-IP-Konfiguration, die mindestens eine öffentliche IP-Adresse enthält. Diese Front-End-IP-Konfiguration ermöglicht es, dass Ihr Load Balancer und Ihre Anwendungen über das Internet zugänglich sind.
Virtuelle Computer stellen mithilfe ihrer virtuellen Netzwerkschnittstellenkarte (NIC) eine Verbindung mit einem Lastenausgleichsmodul her. Um den Datenverkehr zu den virtuellen Computern zu verteilen, enthält ein Back-End-Adresspool die IP-Adressen der virtuellen Netzwerkschnittstellen (NICs), die mit dem Lastverteiler verbunden sind.
Um den Datenverkehrsfluss zu steuern, definieren Sie Lastenausgleichsregeln für bestimmte Ports und Protokolle, die Ihren virtuellen Computern zugeordnet sind.
Starten von Azure Cloud Shell
Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Schritte in diesem Artikel ausführen können. Sie enthält gängige, vorinstallierte Azure-Tools und ist für die Verwendung mit Ihrem Konto konfiguriert.
Wählen Sie zum Öffnen von Cloud Shell oben rechts in einem Codeblock einfach die Option Ausprobieren. Sie können Cloud Shell auch auf einem separaten Browsertab starten, indem Sie zu https://shell.azure.com/powershell navigieren. Wählen Sie Kopieren, um die Blöcke mit dem Code zu kopieren. Fügen Sie ihn anschließend in Cloud Shell ein, und drücken Sie die EINGABETASTE, um ihn auszuführen.
Erstellen eines Azure-Lastenausgleichsmoduls
In diesem Abschnitt wird erläutert, wie Sie jede Komponente des Lastenausgleichs erstellen und konfigurieren können. Bevor Sie das Lastenausgleichsmodul erstellen können, erstellen Sie eine Ressourcengruppe mit New-AzResourceGroup. Im folgenden Beispiel wird eine Ressourcengruppe namens myResourceGroupLoadBalancer in der EastUS-Region erstellt.
New-AzResourceGroup `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Location "EastUS"
Erstellen einer öffentlichen IP-Adresse
Um auf Ihre App im Internet zuzugreifen, benötigen Sie eine öffentliche IP-Adresse für das Lastenausgleichsmodul. Erstellen Sie eine öffentliche IP-Adresse mit New-AzPublicIpAddress. Im folgenden Beispiel wird eine öffentliche IP-Adresse namens myPublicIP- in der myResourceGroupLoadBalancer Ressourcengruppe erstellt:
$publicIP = New-AzPublicIpAddress `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Location "EastUS" `
-AllocationMethod "Static" `
-Name "myPublicIP"
Erstellen eines Load-Balancers
Erstellen Sie einen Front-End-IP-Pool mit New-AzLoadBalancerFrontendIpConfig. Im folgenden Beispiel wird ein Front-End-IP-Pool mit dem Namen "myFrontEndPool" erstellt und die myPublicIP-Adresse angefügt:
$frontendIP = New-AzLoadBalancerFrontendIpConfig `
-Name "myFrontEndPool" `
-PublicIpAddress $publicIP
Erstellen Sie mit New-AzLoadBalancerBackendAddressPoolConfig einen Back-End-Adresspool. In den verbleibenden Schritten werden die virtuellen Computer an diesen Back-End-Pool angefügt. Im folgenden Beispiel wird ein Back-End-Adresspool namens "myBackEndPool" erstellt:
$backendPool = New-AzLoadBalancerBackendAddressPoolConfig `
-Name "myBackEndPool"
Erstellen Sie nun das Lastenausgleichsmodul mit New-AzLoadBalancer. Im folgenden Beispiel wird ein Lastenausgleichsmodul namens "myLoadBalancer " mit den front-End- und Back-End-IP-Pools erstellt, die in den vorherigen Schritten erstellt wurden:
$lb = New-AzLoadBalancer `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Name "myLoadBalancer" `
-Location "EastUS" `
-FrontendIpConfiguration $frontendIP `
-BackendAddressPool $backendPool
Erstellen einer Gesundheitsüberprüfung
Damit der Lastenausgleich den Status Ihrer App überwachen kann, verwenden Sie eine Gesundheitsprüfung. Die Integritätssonde fügt virtuelle Computer dynamisch basierend auf ihrer Reaktion auf Integritätsprüfungen aus der Lastenausgleichsdrehung hinzu oder entfernt sie. Standardmäßig wird ein virtueller Computer aus der Lastenausgleichsverteilung entfernt, nachdem zwei aufeinander folgende Fehler in 15-Sekunden-Intervallen auftreten. Sie erstellen eine Gesundheitsüberprüfung, die auf einem Protokoll oder einer speziellen Gesundheitsprüfungsseite für Ihre App basiert.
Im folgenden Beispiel wird ein TCP-Prüfpunkt erstellt. Sie können auch benutzerdefinierte HTTP-Prüfpunkte für feinkörnigere Integritätsprüfungen erstellen. Wenn Sie einen benutzerdefinierten HTTP-Prüfpunkt verwenden, müssen Sie die Integritätsprüfungsseite erstellen, z. B. healthcheck.aspx. Der Prüfpunkt muss eine HTTP 200 OK Antwort für das Lastenausgleichsmodul zurückgeben, um den Host in Drehung zu halten.
Zum Erstellen einer TCP-Integritätssonde verwenden Sie Add-AzLoadBalancerProbeConfig. Im folgenden Beispiel wird eine Integritätssonde namens myHealthProbe erstellt, die jeden virtuellen Computer am TCP-Port80 überwacht:
Add-AzLoadBalancerProbeConfig `
-Name "myHealthProbe" `
-LoadBalancer $lb `
-Protocol tcp `
-Port 80 `
-IntervalInSeconds 15 `
-ProbeCount 2
Um die Integritätssonde anzuwenden, aktualisieren Sie den Lastenausgleich mit Set-AzLoadBalancer:
Set-AzLoadBalancer -LoadBalancer $lb
Erstellen einer Load Balancer-Regel
Mithilfe einer Load Balancer-Regel wird definiert, wie Datenverkehr auf die virtuellen Computer verteilt werden soll. Sie definieren die Front-End-IP-Konfiguration für den eingehenden Datenverkehr und den Back-End-IP-Pool zum Empfangen des Datenverkehrs zusammen mit dem erforderlichen Quell- und Zielport. Um sicherzustellen, dass nur gesunde VMs Datenverkehr empfangen, definieren Sie auch den zu verwendenden Gesundheitsüberprüfungsmechanismus.
Erstellen Sie mit Add-AzLoadBalancerRuleConfig eine Lastenausgleichsregel. Im folgenden Beispiel wird eine Lastenausgleichsregel namens "myLoadBalancerRule " erstellt und der Datenverkehr an TCP-Port80 ausgeglichen:
$probe = Get-AzLoadBalancerProbeConfig -LoadBalancer $lb -Name "myHealthProbe"
Add-AzLoadBalancerRuleConfig `
-Name "myLoadBalancerRule" `
-LoadBalancer $lb `
-FrontendIpConfiguration $lb.FrontendIpConfigurations[0] `
-BackendAddressPool $lb.BackendAddressPools[0] `
-Protocol Tcp `
-FrontendPort 80 `
-BackendPort 80 `
-Probe $probe
Aktualisieren Sie das Lastenausgleichsmodul mit Set-AzLoadBalancer:
Set-AzLoadBalancer -LoadBalancer $lb
Konfigurieren eines virtuellen Netzwerks
Bevor Sie einige virtuelle Computer bereitstellen und Ihren Balancer testen können, erstellen Sie die unterstützenden virtuellen Netzwerkressourcen. Weitere Informationen zu virtuellen Netzwerken finden Sie im Lernprogramm Verwalten von virtuellen Azure-Netzwerken.
Erstellen von Netzwerkressourcen
Erstellen Sie mit New-AzVirtualNetwork ein virtuelles Netzwerk. Im folgenden Beispiel wird ein virtuelles Netzwerk namens myVnet mit einem Subnetz namens mySubnet erstellt:
# Create subnet config
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name "mySubnet" `
-AddressPrefix 192.168.1.0/24
# Create the virtual network
$vnet = New-AzVirtualNetwork `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Location "EastUS" `
-Name "myVnet" `
-AddressPrefix 192.168.0.0/16 `
-Subnet $subnetConfig
Virtuelle NICs werden mit New-AzNetworkInterface erstellt. Im folgenden Beispiel werden drei virtuelle NICs erstellt. (jeweils eine virtuelle NIC pro virtuellem Computer, den Sie in den folgenden Schritten für Ihre App erstellen). Sie können jederzeit zusätzliche virtuelle NICs und VMs erstellen und dem Lastenausgleich hinzufügen:
for ($i=1; $i -le 3; $i++)
{
New-AzNetworkInterface `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Name myVM$i `
-Location "EastUS" `
-Subnet $vnet.Subnets[0] `
-LoadBalancerBackendAddressPool $lb.BackendAddressPools[0]
}
Erstellen von virtuellen Computern
Fügen Sie die virtuellen Computer in eine Verfügbarkeitsgruppe ein, um die Hochverfügbarkeit Ihrer App zu optimieren.
Erstellen Sie mithilfe von New-AzAvailabilitySet eine Verfügbarkeitsgruppe. Im folgenden Beispiel wird eine Verfügbarkeitsgruppe namens myAvailabilitySet erstellt:
$availabilitySet = New-AzAvailabilitySet `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Name "myAvailabilitySet" `
-Location "EastUS" `
-Sku aligned `
-PlatformFaultDomainCount 2 `
-PlatformUpdateDomainCount 2
Legen Sie mit Get-Credential den Benutzernamen und das Kennwort des Administrators der VMs fest:
$cred = Get-Credential
Nun können Sie mit New-AzVM die virtuellen Computer erstellen. Im folgenden Beispiel werden drei virtuelle Computer und die erforderlichen Komponenten für virtuelle Netzwerke erstellt, sofern sie noch nicht vorhanden sind:
for ($i=1; $i -le 3; $i++)
{
New-AzVm `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Name "myVM$i" `
-Location "East US" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-SecurityGroupName "myNetworkSecurityGroup" `
-OpenPorts 80 `
-AvailabilitySetName "myAvailabilitySet" `
-Credential $cred `
-AsJob
}
Der -AsJob
Parameter erstellt den virtuellen Computer als Hintergrundaufgabe, sodass die PowerShell-Eingabeaufforderungen zu Ihnen zurückkehren. Mit dem Job
Cmdlet können Sie Details zu Hintergrundaufträgen anzeigen. Es dauert ein paar Minuten, alle drei virtuellen Computer zu erstellen und zu konfigurieren.
Installieren von IIS mit benutzerdefinierter Skripterweiterung
In einem vorherigen Lernprogramm zum Anpassen eines virtuellen Windows-Computers haben Sie erfahren, wie Sie die VM-Anpassung mit der benutzerdefinierten Skripterweiterung für Windows automatisieren. Sie können denselben Ansatz verwenden, um IIS auf Ihren virtuellen Computern zu installieren und zu konfigurieren.
Verwenden Sie Set-AzVMExtension, um die benutzerdefinierte Skripterweiterung zu installieren. Die Erweiterung wird ausgeführt, um den IIS-Webserver zu installieren, und aktualisiert dann die Default.htm Seite, die den Hostnamen der VM zeigt:
for ($i=1; $i -le 3; $i++)
{
Set-AzVMExtension `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-ExtensionName "IIS" `
-VMName myVM$i `
-Publisher Microsoft.Compute `
-ExtensionType CustomScriptExtension `
-TypeHandlerVersion 1.8 `
-SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
-Location EastUS
}
Testen des Load Balancers
Rufen Sie die öffentliche IP-Adresse Ihres Lastenausgleichs mit Get-AzPublicIPAddress ab. Im folgenden Beispiel wird die IP-Adresse für myPublicIP, die zuvor erstellt wurde, abgerufen:
Get-AzPublicIPAddress `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Name "myPublicIP" | select IpAddress
Anschließend können Sie die öffentliche IP-Adresse in einen Webbrowser eingeben. Die Website wird angezeigt, einschließlich des Hostnamens der VM, auf die der Datenverkehr durch den Lastenausgleich verteilt wurde, wie im folgenden Beispiel:
Damit der Load Balancer den Datenverkehr auf alle drei VMs verteilt, auf denen Ihre App läuft, können Sie Ihren Webbrowser aktualisieren.
Hinzufügen und Entfernen von virtuellen Computern
Möglicherweise müssen Sie auf den virtuellen Computern, auf denen Ihre App ausgeführt wird, Wartungsarbeiten durchführen, wie beispielsweise das Installieren von Betriebssystemupdates. Um den erhöhten Datenverkehr für Ihre App zu bewältigen, müssen Sie möglicherweise zusätzliche VMs hinzufügen. In diesem Abschnitt erfahren Sie, wie Sie einen virtuellen Computer aus dem Lastenausgleich entfernen oder hinzufügen.
Entfernen eines virtuellen Computers aus dem Lastenausgleichsmodul
Rufen Sie die Netzwerkschnittstellenkarte mit Get-AzNetworkInterface ab, und legen Sie dann die LoadBalancerBackendAddressPools-Eigenschaft der virtuellen NIC auf $null fest. Aktualisieren Sie schließlich die virtuelle NIC.:
$nic = Get-AzNetworkInterface `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Name "myVM2"
$nic.Ipconfigurations[0].LoadBalancerBackendAddressPools=$null
Set-AzNetworkInterface -NetworkInterface $nic
Damit der Load-Balancer den Datenverkehr über die verbleibenden beiden virtuellen Maschinen, auf denen Ihre App läuft, verteilt, können Sie Ihren Webbrowser aktualisieren oder neu laden. Sie können jetzt Wartungen auf dem virtuellen Computer durchführen, z. B. das Installieren von Betriebssystemupdates oder das Ausführen eines VIRTUELLEN Neustarts.
Hinzufügen eines virtuellen Computers zum Lastenausgleich
Legen Sie nach der Vm-Wartung oder wenn Sie die Kapazität erweitern müssen, die LoadBalancerBackendAddressPools-Eigenschaft der virtuellen NIC auf das Back-EndAddressPool von Get-AzLoadBalancer fest:
Rufen Sie das Lastenausgleichsmodul ab:
$lb = Get-AzLoadBalancer `
-ResourceGroupName myResourceGroupLoadBalancer `
-Name myLoadBalancer
$nic.IpConfigurations[0].LoadBalancerBackendAddressPools=$lb.BackendAddressPools[0]
Set-AzNetworkInterface -NetworkInterface $nic
Nächste Schritte
In diesem Tutorial haben Sie einen Load Balancer erstellt und ihm VMs zugewiesen. Sie haben gelernt, wie Sie:
- Erstellen einer Azure Load Balancer-Instanz
- Erstellen einer Integritätsprüfung für den Load Balancer
- Erstellen von Verkehrsregeln für den Lastenverteiler
- Verwenden der benutzerdefinierten Skripterweiterung zum Erstellen einer einfachen IIS-Website
- Erstellen von virtuellen Computern und Anfügen an einen Load Balancer
- Sehen Sie einen Lastenausgleich in Betrieb
- Hinzufügen und Entfernen von VMs aus einem Lastenausgleichsmodul
Wechseln Sie zum nächsten Lernprogramm, um zu erfahren, wie Sie VM-Netzwerke verwalten.