Övning – Konfigurera en offentlig lastbalanserare

Slutförd

Du kan konfigurera Azure Load Balancer i Azure-portalen, med PowerShell eller med Azure CLI.

I din sjukvårdsorganisation vill du belastningsbelasta klienttrafik för att ge ett konsekvent svar baserat på patientportalens webbservrars hälsa. Du har två virtuella datorer (VM) i en tillgänglighetsuppsättning som fungerar som webbapp för hälso- och sjukvårdsportalen.

Här skapar du en lastbalanserarresurs och använder den för att distribuera en belastning mellan de virtuella datorerna.

Distribuera patientportalens webbapp

Distribuera först ditt patientportalprogram på två virtuella datorer i en enda tillgänglighetsuppsättning. I syfte att spara tid börjar vi med att köra ett skript för att skapa appen. Skriptet kommer att:

  • Skapar ett virtuellt nätverk och en nätverksinfrastruktur för de virtuella datorerna.
  • Skapar två virtuella datorer i det här virtuella nätverket.

Så här distribuerar du patientportalens webbapp:

  1. Kör följande git clone-kommando i Azure Cloud Shell. Kommandot klonar lagringsplatsen som innehåller appens källkod och kör installationsskriptet från GitHub. Sedan ändras katalogen för den klonade lagringsplatsen.

    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. Som namnet antyder genererar skriptet två virtuella datorer i en enda tillgänglighetsuppsättning. Det tar ungefär två minuter att köra.

    bash create-high-availability-vm-with-sets.sh <rgn>[sandbox resource group name]</rgn>
    
  3. När skriptet har slutförts går du till menyn i Azure-portalen eller till sidan Start. Där väljer du Resursgrupper och sedan resursgruppen [namn på sandbox-miljöns resursgrupp]. Granska de resurser som skapats av skriptet.

Skapa en lastbalanserare

Nu ska vi skapa lastbalanseraren.

  1. På menyn Azure Portal eller på startsidan går du till Azure-tjänster och väljer Skapa en resurs. Fönstret Skapa en resurs visas.

  2. I sökrutan tjänsten Search s och marketplace anger du Load Balancer och trycker sedan på Retur.

  3. I den efterföljande listan väljer du Load Balancer – Microsoft och sedan Skapa.

    Skapa en Load Balancer-instans i Azure Portal.

  4. På fliken Grundläggande anger du följande värden för varje inställning:

    Inställning Värde
    Projektinformation
    Prenumeration Din prenumeration
    Resursgrupp Välj [resursgruppsnamn för sandbox-miljö]
    Instansinformation
    Name Ange ett unikt namn. Till exempel Pub-LB-PatientsPortal.
    Region Välj den plats där de virtuella datorerna skapades.
    SKU Standard
    Typ Offentlig
    Nivå Regional

    Skärmbild som visar fliken Grundläggande på skärmen Skapa en lastbalanserare i Azure Portal.

Lägga till en IP-konfiguration på klientsidan

  1. Välj Nästa: IP-konfiguration för klientdelen.

  2. Välj + Lägg till en IP-konfiguration för klientdelen. Fönstret Lägg till IP-klientdelskonfiguration visas.

  3. Ange följande värden för varje inställning.

    Inställning Värde
    Name Ange ett unikt namn för klientdelens IP-konfiguration. Till exempel myFrontendIP
    IP-version Välj IPv4
    IP-typ Välj IP-adress
    Offentlig IP-adress Välj Skapa ny, ge ip-adressen ett namn och välj Spara
    Gateway Load Balancer Välj Ingen

    Skärmbild som visar de slutförda inställningarna för IP-konfigurationen Lägg till klientdel.

  4. Stäng dialogrutan genom att välja Spara. Fönstret Skapa lastbalanserare visas.

Lägga till en serverdelspool

  1. Välj Nästa: Serverdelspooler.

  2. Välj + Lägg till en serverdelspool. Fönstret Lägg till serverdelspool visas.

  3. Ange följande värden för varje inställning.

    Inställning Värde
    Name Ange ett unikt namn på serverdelspoolen. Till exempel bepool-http.
    Virtuellt nätverk Bekräfta att bePortalVnet har valts.
  4. Under IP-konfigurationer väljer du Lägg till. Fönstret Lägg till IP-konfigurationer i serverdelspoolen visas.

  5. Under Virtuell dator väljer du de virtuella datorerna webVM1 och webVM2 och väljer Lägg till.

    Skärmbild som visar inställningarna i fönstret Lägg till IP-konfigurationer i serverdelspoolen.

  6. Skärmen Lägg till serverdelspool visas igen. Under IP-konfigurationer väljer du de virtuella datorerna webVM1 och webVM2 och väljer Spara. Skärmen Skapa lastbalanserare visas igen.

    Skärmbild som visar inställningarna som har slutförts på skärmen Lägg till serverdelspool.

Lägga till en belastningsutjämningsregel

Slutligen ska vi skapa en regel för lastbalanseraren.

  1. Välj Nästa: Regler för inkommande trafik.

  2. I avsnittet Belastningsutjämningsregel väljer du + Lägg till en belastningsutjämningsregel. Fönstret Lägg till belastningsutjämningsregel visas.

  3. Ange följande värden för varje inställning.

    Inställning Värde
    Name Ett namn på belastningsutjämningsregeln. Till exempel lbrule-http.
    IP-version IPv4
    Klientdelens IP-adress Välj ip-adressen för klientdelen som du namngav tidigare.
    Serverdelspool Välj den serverdelspool som du namngav tidigare. Till exempel bepool-http.
    Protokoll TCP
    Port Ange 80 (standard).
    Serverdelsport Ange 80 (standard).
    Hälsoavsökning Välj länken Skapa ny . Dialogrutan Lägg till hälsoavsökning visas.
  4. Ange följande värden för varje inställning.

    Inställning Värde
    Name Ett namn på hälsoavsökningen. Till exempel healthprobe-http.
    Protokoll TCP
    Port Ange 80 (standard).
    Intervall Ange 5 (standard). Det här värdet är tiden mellan avsökningarna.
  5. Välj Spara för att stänga dialogrutan. Fönstret Lägg till belastningsutjämningsregel visas igen.

  6. Fortsätt att ange följande värden för varje inställning.

    Inställning Värde
    Sessionspersistence* Ingen (standardvärde)
    Timeout för inaktivitet (minuter) Välj 4 (standard). Det här värdet är den tid det är dags att hålla en TCP-anslutning (Transmission Control Protocol) eller HTTP-anslutningen öppen utan att behöva förlita sig på klienter för att skicka keep-alive-meddelanden.
    Flytande IP Inaktiverad (standard).

    Lägg till en ny belastningsutjämningsregel.

  7. Välj Spara för att slutföra konfigurationen av belastningsutjämningsregeln.

  8. Skärmen Skapa lastbalanserare visas igen. Välj Granska + skapa.

  9. När valideringen har godkänts väljer du Skapa. När distributionen är klar väljer du Gå till resurs.

  10. På sidan Översikt kopierar och sparar du den offentliga IP-adressen. Du kan behöva välja Visa mer... för att visa den offentliga IP-adressen.

Skapa IP-adresser

Först behöver vi en offentlig IP-adress för lastbalanseraren.

  1. Starta PowerShell i Cloud Shell genom att köra det här kommandot:

    pwsh
    
  2. Skapa en ny offentlig IP-adress i 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. Skapa en IP-adress för klientdelen med cmdleten New-AzLoadBalancerFrontendIpConfig. Följande kod skapar en IP-konfiguration på klientsidan med namnet myFrontEnd och bifogar myPublicIP-adressen :

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

Skapa lastbalanseraren

När du använder PowerShell för att konfigurera en lastbalanserare måste du skapa serverdelsadresspoolen, hälsoavsökningen och regeln innan du skapar själva poolen.

  1. Skapa en serverdelsadresspool genom att köra cmdleten New-AzLoadBalancerBackendAddressPoolConfig . Du ska koppla de virtuella datorerna till den här serverdelspoolen i de sista stegen. I följande exempel skapas en adresspool på serverdelen med namnet myBackEndPool:

    $backendPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "myBackEndPool"
    
  2. Skapa en hälsoavsökning så att lastbalanseraren kan övervaka hälsoportalens status. Hälsoavsökningen lägger till eller tar bort virtuella datorer dynamiskt från lastbalanserarens rotation baserat på deras svar på hälsokontrollerna.

    $probe = New-AzLoadBalancerProbeConfig `
      -Name "myHealthProbe" `
      -Protocol http `
      -Port 80 `
      -IntervalInSeconds 5 `
      -ProbeCount 2 `
      -RequestPath "/"
    
  3. Nu behöver du en lastbalanseringsregel för att definiera hur trafiken distribueras till de virtuella datorerna. Du definierar IP-konfigurationen på klientdelen för inkommande trafik och IP-poolen på serverdelen för att ta emot trafik samt nödvändig käll- och målport. Du ser till att endast felfria virtuella datorer tar emot trafik genom att definiera vilken hälsoavsökning som ska användas.

    $lbrule = New-AzLoadBalancerRuleConfig `
      -Name "myLoadBalancerRule" `
      -FrontendIpConfiguration $frontendIP `
      -BackendAddressPool $backendPool `
      -Protocol Tcp `
      -FrontendPort 80 `
      -BackendPort 80 `
      -Probe $probe
    
  4. Nu kan du skapa den grundläggande lastbalanseraren genom att köra cmdleten New-AzLoadBalancer :

    $lb = New-AzLoadBalancer `
      -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
      -Name 'MyLoadBalancer' `
      -Location $Location `
      -FrontendIpConfiguration $frontendIP `
      -BackendAddressPool $backendPool `
      -Probe $probe `
      -LoadBalancingRule $lbrule
    
  5. Anslut de virtuella datorerna till serverdelspoolen genom att uppdatera nätverksgränssnitten som skriptet skapade med information om serverdelspoolen.

    $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. Kör följande kommando för att hämta lastbalanserarens offentliga IP-adress och webbplatsens URL:

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

Skapa en lastbalanserare

Vi använder Azure CLI för att skapa lastbalanseraren och dess associerade resurser.

  1. Skapa en ny offentlig IP-adress.

    az network public-ip create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --allocation-method Static \
      --name myPublicIP
    
  2. Skapa lastbalanseraren.

    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. Skapa en hälsoavsökning som gör att lastbalanseraren kan övervaka hälsoportalens status. Hälsoavsökningen lägger till eller tar bort virtuella datorer dynamiskt från lastbalanserarens rotation baserat på deras svar på hälsokontroller.

    az network lb probe create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --lb-name myLoadBalancer \
      --name myHealthProbe \
      --protocol tcp \
      --port 80  
    
  4. Nu behöver du en lastbalanseringsregel för att definiera hur trafiken distribueras till de virtuella datorerna. Du definierar IP-konfigurationen på klientdelen för inkommande trafik och IP-poolen på serverdelen för att ta emot trafik samt nödvändig käll- och målport. Du ser till att endast felfria virtuella datorer tar emot trafik genom att definiera vilken hälsoavsökning som ska användas.

    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. Anslut de virtuella datorerna till serverdelspoolen genom att uppdatera nätverksgränssnitten som skriptet skapade med information om serverdelspoolen.

    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. Kör följande kommando för att hämta lastbalanserarens offentliga IP-adress och webbplatsens URL:

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

Testa lastbalanserarens konfiguration

Nu ska vi testa konfigurationen av lastbalanseraren genom att visa hur den kan hantera tillgänglighets- och hälsoproblem dynamiskt.

  1. Gå till den offentliga IP-adress du antecknade på en ny webbläsarflik. Ett svar från en av de virtuella datorerna visas i webbläsaren.

  2. Prova en "force refresh" genom att trycka på Ctrl +F5 några gånger för att se att svaret returneras slumpmässigt från båda de virtuella datorerna.

  3. I menyn i Azure-portalen eller på sidan Start väljer du Alla resurser. Välj sedan webVM1 och välj Stoppa.

  4. Gå tillbaka till den flik som visar webbplatsen och tvångsuppdatera webbplatsen. Alla förfrågningar returneras nu från webVM2.