Übung: Konfigurieren des öffentlichen Lastenausgleichs

Abgeschlossen

Sie können Azure Load Balancer über das Azure-Portal, über PowerShell oder über die Azure CLI konfigurieren.

In Ihrer Gesundheitseinrichtung möchten Sie einen Lastausgleich für den Client-Datenverkehr vornehmen, um eine konsistente Antwort auf der Grundlage des Zustands der Webserver des Patientenportals zu erhalten. Sie haben zwei virtuelle Maschinen (VMs) in einer Verfügbarkeitsgruppe, die als Ihre Webanwendung für das Gesundheitsportal fungieren.

Im Folgenden erstellen Sie eine Lastenausgleichsressource und verwenden diese, um Last auf die VMs zu verteilen.

Bereitstellen der Webanwendung für das Patientenportal

Stellen Sie zunächst Ihre Patientenportalanwendung auf zwei VMs in einer einzigen Verfügbarkeitsgruppe bereit. Führen Sie zunächst ein Skript zum Erstellen dieser Anwendung aus, um Zeit zu sparen. Das Skript:

  • Es erstellt ein virtuelles Netzwerk und eine Netzwerkinfrastruktur für die VMs.
  • Es erstellt zwei VMs in diesem virtuellen Netzwerk.

So stellen Sie die Webanwendung für das Patientenportal bereit

  1. Führen Sie in Azure Cloud Shell folgenden git clone-Befehl aus. Mit diesem Befehl wird das Repository geklont, das die Quelle für die App enthält, und das Setupskript von GitHub ausgeführt. Anschließend findet ein Wechsel zum Verzeichnis des geklonten Repositorys statt.

    git clone https://github.com/MicrosoftDocs/mslearn-improve-app-scalability-resiliency-with-load-balancer.git
    cd mslearn-improve-app-scalability-resiliency-with-load-balancer
    
  2. Wie der Name bereits vermuten lässt, generiert das Skript zwei VMs innerhalb einer Verfügbarkeitsgruppe. Die Ausführung des Skripts dauert ungefähr zwei Minuten.

    bash create-high-availability-vm-with-sets.sh <rgn>[sandbox resource group name]</rgn>
    
  3. Wählen Sie nach Abschluss des Skripts im Menü des Azure-Portals oder auf der Startseite die Option Ressourcengruppen aus, und wählen Sie dann die Ressourcengruppe [Name der Sandboxressourcengruppe] aus. Überprüfen Sie die vom Skript erstellten Ressourcen.

Einrichten eines Lastenausgleichs

Nun erstellen Sie den Lastenausgleich.

  1. Wählen Sie im Menü des Azure-Portals oder auf der Startseite unter Azure-Dienste die Option Ressource erstellen aus. Der Bereich Ressource erstellen wird angezeigt.

  2. Geben Sie im Suchfeld Search services and marketplace (Dienste und Marketplace durchsuchen) den Begriff Load Balancer ein, und drücken Sie die EINGABETASTE.

  3. Wählen Sie in der anschließenden Liste Load Balancer – Microsoft und dann Erstellen aus.

    Erstellen einer Load Balancer-Instanz im Azure-Portal

  4. Geben Sie auf der Registerkarte Grundlagen die folgenden Werte für die jeweilige Einstellung ein:

    Einstellung Wert
    Projektdetails
    Subscription Ihr Abonnement
    Ressourcengruppe Wählen Sie [Name der Sandboxressourcengruppe] aus.
    Instanzendetails
    Name Geben Sie einen eindeutigen Namen ein. Zum Beispiel Pub-LB-PatientsPortal.
    Region Wählen Sie den Speicherort aus, an dem die VMs erstellt wurden.
    SKU Standard
    Typ Public
    Tarif Regional

    Screenshot: Registerkarte „Grundlagen“ des Bildschirms „Lastenausgleich erstellen“ im Azure-Portal

Hinzufügen einer Front-End-IP-Konfiguration

  1. Klicken Sie auf Weiter: Front-End-IP-Konfiguration.

  2. Wählen Sie + Front-End-IP-Konfiguration hinzufügen aus. Der Bereich Front-End-IP-Konfiguration hinzufügen wird angezeigt.

  3. Füllen Sie die folgenden Werte für jede Einstellung aus.

    Einstellung Wert
    Name Geben Sie einen eindeutigen Namen für die Front-End-IP-Konfiguration ein. Beispiel: myFrontendIP
    IP-Version Wählen Sie IPv4 aus.
    IP-Typ Wählen Sie IP-Adresse aus
    Öffentliche IP-Adresse Wählen Sie Neu erstellen aus, geben Sie Ihrer IP-Adresse dann einen Namen, und wählen Sie Speichern aus
    Gateway Load Balancer Wählen Sie Keine aus.

    Screenshot: ausgefüllte Einstellungen für „Front-End-IP-Konfiguration hinzufügen“

  4. Wählen Sie Speichern aus, um das Dialogfeld zu schließen. Der Bereich Lastenausgleich erstellen wird angezeigt.

Hinzufügen eines Back-End-Pools

  1. Klicken Sie auf Weiter: Back-End-Pools.

  2. Wählen Sie + Back-End-Pool hinzufügen aus. Der Bereich Back-End-Pool hinzufügen wird angezeigt.

  3. Füllen Sie die folgenden Werte für jede Einstellung aus.

    Einstellung Wert
    Name Geben Sie einen eindeutigen Namen für den Back-End-Pool ein. Beispiel: bepool-http.
    Virtuelles Netzwerk Bestätigen Sie, dass bePortalVnet- ausgewählt ist.
  4. Wählen Sie unter IP-Konfigurationen die Option Hinzufügen. Der Bereich IP-Konfigurationen zum Back-End-Pool hinzufügen wird angezeigt.

  5. Wählen Sie unter Virtueller Computer die VMs webVM1 und webVM2 aus, und klicken Sie auf Hinzufügen.

    Screenshot: Einstellungen im Bereich „IP-Konfigurationen zum Back-End-Pool hinzufügen“

  6. Der Bildschirm Back-End-Pool hinzufügen wird erneut angezeigt. Wählen Sie unter IP-Konfigurationen die VMs webVM1 und webVM2 aus, und klicken Sie auf Speichern. Der Bildschirm Lastenausgleich erstellen wird erneut angezeigt.

    Screenshot: ausgefüllte Einstellungen im Bildschirm „Back-End-Pool hinzufügen“

Hinzufügen einer Lastenausgleichsregel

Schließlich erstellen Sie eine Regel für den Lastenausgleich.

  1. Klicken Sie auf Weiter: Eingangsregeln.

  2. Klicken Sie im Abschnitt Lastenausgleichsregel auf + Lastenausgleichsregel hinzufügen. Der Bereich Lastenausgleichsregel hinzufügen wird angezeigt.

  3. Füllen Sie die folgenden Werte für jede Einstellung aus.

    Einstellung Wert
    Name Geben Sie einen Namen für die Lastenausgleichsregel ein. Beispiel: lbrule-http.
    IP-Version IPv4
    Front-End-IP-Adresse Wählen Sie die Front-End-IP-Adresse aus, die Sie zuvor benannt haben.
    Back-End-Pool Wählen Sie den Back-End-Pool aus, den Sie zuvor benannt haben. Beispiel: bepool-http.
    Protocol TCP
    Port Geben Sie 80 ein (Standardeinstellung).
    Back-End-Port Geben Sie 80 ein (Standardeinstellung).
    Integritätstest Klicken Sie auf den Link Neu erstellen. Das Dialogfeld Integritätstest hinzufügen wird angezeigt.
  4. Füllen Sie die folgenden Werte für jede Einstellung aus.

    Einstellung Wert
    Name Ein Name für den Integritätstest. Beispiel: healthprobe-http.
    Protokoll TCP
    Port Geben Sie 80 ein (Standardeinstellung).
    Intervall Geben Sie 5 ein (Standardeinstellung). Dieser Wert entspricht der Zeitspanne zwischen den Tests.
  5. Wählen Sie Speichern aus, um das Dialogfeld zu schließen. Der Bereich Lastenausgleichsregel hinzufügen wird noch mal angezeigt.

  6. Füllen Sie die folgenden Werte für jede Einstellung aus.

    Einstellung Wert
    Sitzungspersistenz* Keine (Standard)
    Leerlaufzeitüberschreitung (Minuten) Wählen Sie 4 aus (Standardwert). Dieser Wert gibt die Zeit an, für die eine Transmission Control-Protokoll (TCP)- oder HTTP-Verbindung geöffnet bleiben soll, wenn Clients keine Keep-Alive-Meldungen senden.
    Unverankerte IP Deaktiviert (Standardeinstellung)

    Hinzufügen einer neuen Lastenausgleichsregel

  7. Wählen Sie Hinzufügen aus, um die Konfiguration der Lastenausgleichsregel abzuschließen.

  8. Der Bildschirm Lastenausgleich erstellen wird erneut angezeigt. Klicken Sie auf Überprüfen + erstellen.

  9. Klicken Sie nach der Validierung auf Erstellen. Wählen Sie nach Abschluss der Bereitstellung Zu Ressource wechseln aus.

  10. Kopieren Sie auf der Seite Übersicht die öffentliche IP-Adresse, und speichern Sie sie. Möglicherweise müssen Sie Weitere anzeigen auswählen, um die öffentliche IP-Adresse zu sehen.

Erstellen von IP-Adressen

Zunächst benötigen Sie eine öffentliche IP-Adresse für den Lastenausgleich.

  1. Starten Sie PowerShell in Cloud Shell, indem Sie den folgenden Befehl ausführen:

    pwsh
    
  2. Erstellen Sie eine neue öffentliche IP-Adresse in PowerShell.

    $Location = $(Get-AzureRmResourceGroup -ResourceGroupName <rgn>[sandbox resource group name]</rgn>).Location
    
    $publicIP = New-AzPublicIpAddress `
      -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
      -Location $Location `
      -AllocationMethod "Static" `
      -Name "myPublicIP"
    
  3. Erstellen Sie mit dem Cmdlet New-AzLoadBalancerFrontendIpConfig eine Front-End-IP-Adresse. Der folgende Code erstellt eine Front-End-IP-Konfiguration mit dem Namen myFrontEnd und fügt die Adresse myPublicIP an:

    $frontendIP = New-AzLoadBalancerFrontendIpConfig `
      -Name "myFrontEnd" `
      -PublicIpAddress $publicIP
    

Erstellen des Lastenausgleichs

Wenn Sie PowerShell zum Konfigurieren eines Lastenausgleichs verwenden, müssen Sie den Back-End-Adresspool, den Integritätstest und die Regel erstellen, bevor Sie den Lastenausgleich selbst erstellen.

  1. Erstellen Sie mit dem Cmdlet New-AzLoadBalancerBackendAddressPoolConfig einen Back-End-Adresspool. In den abschließenden Schritten werden Sie die VMs in diesen Back-End-Pool einfügen. Im folgenden Beispiel wird ein Back-End-Adresspool namens myBackEndPool erstellt:

    $backendPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "myBackEndPool"
    
  2. Erstellen Sie einen Integritätstest, damit der Lastenausgleich den Status des Gesundheitsportals überwachen kann. Je nach Antwort der VMs auf Integritätsüberprüfungen werden die VMs beim Integritätstest dynamisch zur Lastenausgleichsrotation hinzugefügt oder aus ihr entfernt.

    $probe = New-AzLoadBalancerProbeConfig `
      -Name "myHealthProbe" `
      -Protocol http `
      -Port 80 `
      -IntervalInSeconds 5 `
      -ProbeCount 2 `
      -RequestPath "/"
    
  3. Nun benötigen Sie eine Lastenausgleichsregel, um die Verteilung des Datenverkehrs auf die VMs zu definieren. 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. Sie definieren außerdem den zu verwendenden Integritätstest, um sicherzustellen, dass nur fehlerfreie VMs Datenverkehr empfangen.

    $lbrule = New-AzLoadBalancerRuleConfig `
      -Name "myLoadBalancerRule" `
      -FrontendIpConfiguration $frontendIP `
      -BackendAddressPool $backendPool `
      -Protocol Tcp `
      -FrontendPort 80 `
      -BackendPort 80 `
      -Probe $probe
    
  4. Nun können Sie den grundlegenden Lastenausgleich mithilfe des Cmdlets New-AzLoadBalancer erstellen.

    $lb = New-AzLoadBalancer `
      -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
      -Name 'MyLoadBalancer' `
      -Location $Location `
      -FrontendIpConfiguration $frontendIP `
      -BackendAddressPool $backendPool `
      -Probe $probe `
      -LoadBalancingRule $lbrule
    
  5. Verbinden Sie die VMs mit dem Back-End-Pool, indem Sie die Netzwerkschnittstellen aktualisieren, die das Skript zur Verwendung der Informationen des Back-End-Pools erstellt hat.

    $nic1 = Get-AzNetworkInterface -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name "webNic1"
    $nic2 = Get-AzNetworkInterface -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name "webNic2"
    
    $nic1.IpConfigurations[0].LoadBalancerBackendAddressPools = $backendPool
    $nic2.IpConfigurations[0].LoadBalancerBackendAddressPools = $backendPool
    
    Set-AzNetworkInterface -NetworkInterface $nic1 -AsJob
    Set-AzNetworkInterface -NetworkInterface $nic2 -AsJob
    
  6. Führen Sie den folgenden Befehl aus, um die öffentliche IP-Adresse des Lastenausgleichs und die URL Ihrer Website abzurufen.

    Write-Host http://$($(Get-AzPublicIPAddress `
      -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
      -Name "myPublicIP").IpAddress)
    

Erstellen eines Lastenausgleichs

Im Folgenden verwenden Sie die Azure CLI, um den Lastenausgleich und dessen zugehörigen Ressourcen zu erstellen.

  1. Erstellen Sie eine neue öffentliche IP-Adresse.

    az network public-ip create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --allocation-method Static \
      --name myPublicIP
    
  2. Erstellen Sie den Lastenausgleich.

    az network lb create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --name myLoadBalancer \
      --public-ip-address myPublicIP \
      --frontend-ip-name myFrontEndPool \
      --backend-pool-name myBackEndPool
    
  3. Erstellen Sie einen Integritätstest, damit der Lastenausgleich den Status des Gesundheitsportals überwachen kann. Je nach Antwort der VMs auf Integritätsüberprüfungen werden die VMs beim Integritätstest dynamisch zur Lastenausgleichsrotation hinzugefügt oder aus ihr entfernt.

    az network lb probe create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --lb-name myLoadBalancer \
      --name myHealthProbe \
      --protocol tcp \
      --port 80  
    
  4. Nun benötigen Sie eine Lastenausgleichsregel, die dazu verwendet wird, die Verteilung des Datenverkehrs auf die VMs zu definieren. 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. Sie definieren außerdem den zu verwendenden Integritätstest, um sicherzustellen, dass nur fehlerfreie VMs Datenverkehr empfangen.

    az network lb rule create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --lb-name myLoadBalancer \
      --name myHTTPRule \
      --protocol tcp \
      --frontend-port 80 \
      --backend-port 80 \
      --frontend-ip-name myFrontEndPool \
      --backend-pool-name myBackEndPool \
      --probe-name myHealthProbe
    
  5. Verbinden Sie die VMs mit dem Back-End-Pool, indem Sie die Netzwerkschnittstellen aktualisieren, die das Skript zur Verwendung der Informationen des Back-End-Pools erstellt hat.

    az network nic ip-config update \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --nic-name webNic1 \
      --name ipconfig1 \
      --lb-name myLoadBalancer \
      --lb-address-pools myBackEndPool
    
    az network nic ip-config update \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --nic-name webNic2 \
      --name ipconfig1 \
      --lb-name myLoadBalancer \
      --lb-address-pools myBackEndPool
    
  6. Führen Sie den folgenden Befehl aus, um die öffentliche IP-Adresse des Lastenausgleichs und die URL Ihrer Website abzurufen.

    echo http://$(az network public-ip show \
                    --resource-group <rgn>[sandbox resource group name]</rgn> \
                    --name myPublicIP \
                    --query ipAddress \
                    --output tsv)
    

Testen der Konfiguration des Lastenausgleichs

Lassen Sie uns das Setup des Lastenausgleichs testen, indem wir zeigen, wie er dynamisch mit Verfügbarkeits- und Integritätsproblemen umgehen kann.

  1. Rufen Sie die zuvor notierte öffentliche IP-Adresse in einer neuen Browserregisterkarte auf. Eine Antwort von einem der virtuellen Computer wird im Browser angezeigt.

  2. Drücken Sie zum Erzwingen von Aktualisierungen mehrmals STRG+F5. Die zurückgegebene Antwort sollte zufällig von beiden VMs stammen.

  3. Wählen Sie im Menü des Azure-Portals oder auf der Startseite die Option Alle Ressourcen aus. Wählen Sie dann webVM1 aus, und klicken Sie auf Beenden.

  4. Kehren Sie dann zur Registerkarte mit der Website zurück, und erzwingen Sie noch mal eine Aktualisierung der Webseite. Alle Anforderungen werden nun von webVM2 zurückgegeben.