Ö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 är klart går du till Menyn i Azure-portalen eller på sidan Start och väljer Resursgrupper och väljer sedan resursgruppen [resursgruppsnamn för sandbox-miljö]. Granska de resurser som skapats av skriptet.

Skapa en lastbalanserare

Nu ska vi skapa lastbalanseraren.

  1. Menyn i Azure-portalen eller på sidan Start väljer du Skapa en resurs under Azure-tjänster. Fönstret Skapa en resurs visas.

  2. I sökrutan Söktjänster 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-portalen.

  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
    Namn Ange ett unikt namn. Till exempel Pub-LB-PatientsPortal.
    Region Välj den plats där de virtuella datorerna skapades.
    artikelnummer (SKU) Standard
    Typ Offentlig
    Nivå Regional

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

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
    Namn 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-belastningsutjämnare Välj Ingen

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

  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 back-end-pool. Panelen Lägg till backend-pool visas.

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

    Inställning Värde
    Namn Ange ett unikt namn på serverdelspoolen. Till exempel bepool-http.
    Virtuellt nätverk Bekräfta att bePortalVnet är valt.
  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 de slutförda inställningarna på skärmen för att lägga till backend-pool.

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
    Namn 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
    Hamn 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
    Namn Ett namn på hälsoavsökningen. Till exempel healthprobe-http.
    Protokoll TCP
    Hamn 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 (standard)
    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 frontend-IP med hjälp av 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 backend-adresspool 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 serverdelsadresspool 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. 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 begäranden returneras från webVM2.