Oefening: een openbare load balancer configureren

Voltooid

U kunt Azure Load Balancer configureren met behulp van Azure Portal, PowerShell of de Azure CLI.

In uw gezondheidszorgorganisatie wilt u het clientverkeer verdelen om een consistent antwoord te bieden op basis van de status van de webservers van de patiëntportal. U hebt twee virtuele machines (VM's) in een beschikbaarheidsset om te fungeren als uw zorgportal-webtoepassing.

Hier maakt u een load balancer-resource en gebruikt u deze om een belasting over de virtuele machines te verdelen.

De patiëntportalwebtoepassing implementeren

Implementeer eerst uw patiëntportaltoepassing op twee virtuele machines in één beschikbaarheidsset. We beginnen met het uitvoeren van een script om deze toepassing te maken, om tijd te besparen. Met het script:

  • Hiermee maakt u een virtueel netwerk en een netwerkinfrastructuur voor de virtuele machines.
  • Hiermee maakt u twee virtuele machines in dit virtuele netwerk.

U implementeert als volgt de webtoepassing voor de patiëntenportal:

  1. Voer de volgende git clone-opdracht uit in Azure Cloud Shell. Met de opdracht wordt de opslagplaats gekloond die de bron van de app bevat en wordt het installatiescript uit GitHub uitgevoerd. Vervolgens wordt de map van de gekloonde opslagplaats gewijzigd.

    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. Zoals de naam al aangeeft, genereert het script twee virtuele machines in één beschikbaarheidsset. Het duurt ongeveer twee minuten om te worden uitgevoerd.

    bash create-high-availability-vm-with-sets.sh <rgn>[sandbox resource group name]</rgn>
    
  3. Wanneer het script is voltooid, selecteert u in het menu van Azure Portal of op de startpagina de optie Resourcegroepen en vervolgens de resourcegroep [naam sandbox-resourcegroep]. Controleer de resources die door het script zijn gemaakt.

Een load balancer maken

Nu gaan we de load balancer maken.

  1. Selecteer in het menu van Azure Portal of op de startpagina onder Azure-services de optie Een resource maken. Het deelvenster Een resource maken wordt weergegeven.

  2. Voer in het zoekvak Search-service s en Marketplace Load Balancer in en druk op Enter.

  3. Selecteer In de volgende lijst Load Balancer - Microsoft en selecteer vervolgens Maken.

    Maak een Load Balancer-exemplaar in Azure Portal.

  4. Voer op het tabblad Basisinformatie de volgende waarden in voor elke instelling:

    Instelling Weergegeven als
    Projectdetails
    Abonnement Uw abonnement
    Resourcegroep Selecteer [naam sandbox-resourcegroep]
    Exemplaardetails
    Naam Voer een unieke naam in. Bijvoorbeeld Pub-LB-PatientsPortal.
    Regio Selecteer de locatie waarop de virtuele machines zijn gemaakt.
    SKU Standaard
    Type Openbaar
    Laag Regionaal

    Schermopname van het tabblad Basisbeginselen van het scherm Een load balancer maken in Azure Portal.

Een front-end-IP-configuratie toevoegen

  1. Selecteer Volgende: Front-end-IP-configuratie.

  2. Selecteer + Een front-end-IP-configuratie toevoegen. Het deelvenster Front-end-IP-configuratie toevoegen wordt weergegeven.

  3. Voer de volgende waarden in voor elke instelling.

    Instelling Weergegeven als
    Naam Voer een unieke naam in voor de front-end-IP-configuratie. Bijvoorbeeld myFrontendIP
    IP-versie Selecteer IPv4
    Type IP-adres IP-adres selecteren
    Openbaar IP-adres Selecteer Nieuw maken en geef uw IP-adres een naam en selecteer Opslaan
    Gateway Load Balancer Selecteer Geen

    Schermopname van de voltooide instellingen voor de front-end-IP-configuratie toevoegen.

  4. Als u het dialoogvenster wilt sluiten, selecteert u Opslaan. Het deelvenster Load Balancer maken wordt weergegeven.

Een back-endadresgroep toevoegen

  1. Selecteer Volgende: Back-endpools.

  2. Selecteer + Een back-endpool toevoegen. Het deelvenster Back-endpool toevoegen wordt weergegeven.

  3. Voer de volgende waarden in voor elke instelling.

    Instelling Weergegeven als
    Naam Voer een unieke naam in voor de back-endpool. Bijvoorbeeld bepool-http.
    Virtueel netwerk Controleer of bePortalVnet is geselecteerd.
  4. Selecteer Toevoegen onder IP-configuraties. Het deelvenster IP-configuraties toevoegen aan back-endpool wordt weergegeven.

  5. Selecteer onder Virtuele machine de virtuele machines webVM1 en webVM2 en selecteer Toevoegen.

    Schermopname van de instellingen in het deelvenster IP-configuraties toevoegen aan back-endpool.

  6. Het scherm Back-endpool toevoegen wordt opnieuw weergegeven. Selecteer onder IP-configuraties de virtuele machines webVM1 en webVM2 en selecteer Opslaan. Het scherm Load Balancer maken wordt opnieuw weergegeven.

    Schermopname van de instellingen die zijn voltooid op het scherm Back-endpool toevoegen.

Een taakverdelingsregel toevoegen

Ten slotte gaan we een regel maken voor de load balancer.

  1. Selecteer Volgende: Regels voor inkomend verkeer.

  2. Selecteer + Een taakverdelingsregel toevoegen in de sectie Taakverdelingsregel. Het deelvenster Taakverdelingsregel toevoegen wordt weergegeven.

  3. Voer de volgende waarden in voor elke instelling.

    Instelling Weergegeven als
    Naam Een naam voor de taakverdelingsregel. Bijvoorbeeld lbrule-http.
    IP-versie IPv4
    IP-adres voor front-end Selecteer het front-end-IP-adres dat u eerder hebt genoemd.
    Back-endpool Selecteer de back-endpool die u eerder hebt genoemd. Bijvoorbeeld bepool-http.
    Protocol TCP
    Poort Voer 80 in (standaardinstelling).
    Back-endpoort Voer 80 in (standaardinstelling).
    Statustest Selecteer de koppeling Nieuwe maken. Het dialoogvenster Statustest toevoegen wordt weergegeven.
  4. Voer de volgende waarden in voor elke instelling.

    Instelling Weergegeven als
    Naam Een naam voor de statustest. Bijvoorbeeld healthprobe-http.
    Protocol TCP
    Poort Voer 80 in (standaardinstelling).
    Interval Voer 5 in (standaard). Deze waarde is de tijdsduur tussen tests.
  5. Selecteer Opslaan om het dialoogvenster te sluiten. Het deelvenster Taakverdelingsregel toevoegen wordt opnieuw weergegeven.

  6. Ga door met het invoeren van de volgende waarden voor elke instelling.

    Instelling Weergegeven als
    Sessiepersistentie* Geen (standaard)
    Time-out voor inactiviteit (minuten) Selecteer 4 (standaardinstelling). Deze waarde is de tijd om een Transmission Control Protocol (TCP) of HTTP-verbinding open te houden zonder dat clients keep-alive-berichten verzenden.
    Zwevend IP-adres Uitgeschakeld (standaard).

    Voeg een nieuwe taakverdelingsregel toe.

  7. Selecteer Opslaan om de configuratie van de taakverdelingsregel te voltooien.

  8. Het scherm Load Balancer maken wordt opnieuw weergegeven. Selecteer Controleren + maken.

  9. Wanneer de validatie is geslaagd, selecteert u Maken. Wanneer de implementatie is voltooid, selecteert u Ga naar de resource.

  10. Kopieer en sla het openbare IP-adres op de pagina Overzicht op. Mogelijk moet u Meer weergeven selecteren ... om het openbare IP-adres weer te geven.

IP-adressen maken

Om te beginnen hebben we een openbaar IP-adres nodig voor de load balancer.

  1. Start PowerShell in Cloud Shell door deze opdracht uit te voeren:

    pwsh
    
  2. Maak in PowerShell een nieuw openbaar IP-adres:

    $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. Maak een front-end-IP-adres met behulp van de cmdlet New-AzLoadBalancerFrontendIpConfig. Met de volgende code maakt u een front-end-IP-configuratie met de naam myFrontEnd en koppelt u het myPublicIP-adres :

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

De load balancer maken

Wanneer u PowerShell gebruikt om een load balancer te configureren, moet u de back-endadresgroep, de statustest en de regel maken voordat u de balancer zelf maakt.

  1. Maak een back-endadresgroep door de cmdlet New-AzLoadBalancerBackendAddressPoolConfig uit te voeren. U gaat de virtuele machines aan deze back-endpool koppelen in de laatste stappen. In het volgende voorbeeld wordt een back-end-adresgroep met de naam myBackEndPool gemaakt:

    $backendPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "myBackEndPool"
    
  2. Maak een statustest om de load balancer de status van de gezondheidszorgportal te laten bewaken. Via de statustest worden dynamisch virtuele machines toegevoegd aan en verwijderd uit de load balancer-rotatie op basis van de reactie op statustests.

    $probe = New-AzLoadBalancerProbeConfig `
      -Name "myHealthProbe" `
      -Protocol http `
      -Port 80 `
      -IntervalInSeconds 5 `
      -ProbeCount 2 `
      -RequestPath "/"
    
  3. U hebt nu een load balancer-regel nodig om te definiëren hoe verkeer naar de virtuele machines wordt gedistribueerd. U definieert de front-end-IP-configuratie voor het inkomende verkeer en de back-end-IP-groep om het verkeer te ontvangen, samen met de gewenste bron- en doelpoort. U moet ook de te gebruiken statustest definiëren om ervoor te zorgen dat alleen virtuele machines die in orde zijn verkeer ontvangen.

    $lbrule = New-AzLoadBalancerRuleConfig `
      -Name "myLoadBalancerRule" `
      -FrontendIpConfiguration $frontendIP `
      -BackendAddressPool $backendPool `
      -Protocol Tcp `
      -FrontendPort 80 `
      -BackendPort 80 `
      -Probe $probe
    
  4. U kunt nu de basic load balancer maken door de cmdlet New-AzLoadBalancer uit te voeren:

    $lb = New-AzLoadBalancer `
      -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
      -Name 'MyLoadBalancer' `
      -Location $Location `
      -FrontendIpConfiguration $frontendIP `
      -BackendAddressPool $backendPool `
      -Probe $probe `
      -LoadBalancingRule $lbrule
    
  5. Verbind de virtuele machines met de back-endpool door de netwerkinterfaces die met het script zijn gemaakt zo bij te werken dat deze de gegevens van de back-endpool gebruiken.

    $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. Voer de volgende opdracht uit om het openbare IP-adres van de load balancer en de URL van uw website op te halen:

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

Een load balancer maken

We gaan nu de Azure CLI gebruiken om de load balancer en de bijbehorende resources te maken.

  1. Maak een nieuw openbaar IP-adres.

    az network public-ip create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --allocation-method Static \
      --name myPublicIP
    
  2. Maak de load balancer.

    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. Maak een statustest waarmee de load balancer de status van de gezondheidszorgportal kan bewaken. Met de statustest worden virtuele machines dynamisch toegevoegd aan of verwijderd uit de load balancer-rotatie op basis van hun reactie op statuscontroles.

    az network lb probe create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --lb-name myLoadBalancer \
      --name myHealthProbe \
      --protocol tcp \
      --port 80  
    
  4. U hebt nu een load balancer-regel nodig om te definiëren hoe verkeer wordt gedistribueerd naar de virtuele machines. U definieert de front-end-IP-configuratie voor het inkomende verkeer en de back-end-IP-groep om het verkeer te ontvangen, samen met de gewenste bron- en doelpoort. U moet ook de te gebruiken statustest definiëren om ervoor te zorgen dat alleen virtuele machines die in orde zijn verkeer ontvangen.

    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. Verbind de virtuele machines met de back-endpool door de netwerkinterfaces die met het script zijn gemaakt zo bij te werken dat deze de gegevens van de back-endpool gebruiken.

    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. Voer de volgende opdracht uit om het openbare IP-adres van de load balancer en de URL van uw website op te halen:

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

De configuratie van de load balancer testen

We gaan de installatie van de load balancer testen door te laten zien hoe deze dynamisch beschikbaarheids- en statusproblemen kan afhandelen.

  1. Ga op een nieuw tabblad naar het openbare IP-adres dat u hebt genoteerd. Er wordt een antwoord van een van de virtuele machines weergegeven in de browser.

  2. Probeer het vernieuwen af te dwingen door een paar keer op Ctrl+F5 te drukken om te zien dat het antwoord willekeurig wordt geretourneerd van beide virtuele machines.

  3. Selecteer in het menu van Azure Portal of op de startpagina de optie Alle resources. Selecteer vervolgens webVM1 en selecteer Stoppen.

  4. Ga terug naar het tabblad waarop de website wordt weergegeven en vernieuw de webpagina opnieuw. Alle aanvragen worden geretourneerd vanaf webVM2.