Ćwiczenie — konfigurowanie publicznego modułu równoważenia obciążenia

Ukończone

Usługę Azure Load Balancer można skonfigurować przy użyciu witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure.

W organizacji opieki zdrowotnej chcesz równoważyć obciążenie ruchem klienta, aby zapewnić spójną odpowiedź na podstawie kondycji serwerów internetowych portalu pacjentów. Masz dwie maszyny wirtualne w zestawie dostępności, które działają jako aplikacja internetowa portalu opieki zdrowotnej.

W tym miejscu utworzysz zasób modułu równoważenia obciążenia i użyjesz go do dystrybucji obciążenia między maszynami wirtualnymi.

Wdrażanie aplikacji internetowej portalu pacjentów

Najpierw wdróż aplikację portalu pacjentów na dwóch maszynach wirtualnych w jednym zestawie dostępności. Aby zaoszczędzić czas, zacznijmy od uruchomienia skryptu w celu utworzenia tej aplikacji. Skrypt:

  • Tworzy sieć wirtualną i infrastrukturę sieci dla maszyn wirtualnych.
  • Tworzy dwie maszyny wirtualne w tej sieci wirtualnej.

Aby wdrożyć aplikację internetową portalu pacjentów:

  1. W usłudze Azure Cloud Shell uruchom następujące polecenie git clone. To polecenie klonuje repozytorium zawierające źródło dla aplikacji i uruchamia skrypt instalatora z usługi GitHub. Następnie zmieni się na katalog sklonowanego repozytorium.

    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. Jak sugeruje jej nazwa, skrypt generuje dwie maszyny wirtualne w jednym zestawie dostępności. Uruchomienie trwa około dwóch minut.

    bash create-high-availability-vm-with-sets.sh <rgn>[sandbox resource group name]</rgn>
    
  3. Po zakończeniu działania skryptu w menu witryny Azure Portal lub na stronie głównej wybierz pozycję Grupy zasobów, a następnie wybierz grupę zasobów [nazwa grupy zasobów piaskownicy]. Przejrzyj zasoby utworzone przez skrypt.

Tworzenie modułu równoważenia obciążenia

Teraz utwórzmy moduł równoważenia obciążenia.

  1. W menu witryny Azure Portal lub na stronie głównej w obszarze Usługi platformy Azure wybierz pozycję Utwórz zasób. Zostanie wyświetlone okienko Tworzenie zasobu .

  2. W polu wyszukiwania usługa wyszukiwania i marketplace wprowadź ciąg Load Balancer, a następnie naciśnij Enter.

  3. Z wyświetlonej listy wybierz pozycję Load Balancer — Microsoft, a następnie wybierz pozycję Utwórz.

    Utwórz wystąpienie usługi Load Balancer w witrynie Azure Portal.

  4. Na karcie Podstawowe wprowadź następujące wartości dla każdego ustawienia:

    Ustawienie Wartość
    Szczegóły projektu
    Subskrypcja Twoja subskrypcja
    Grupa zasobów Wybierz pozycję [nazwa grupy zasobów piaskownicy]
    Szczegóły wystąpienia
    Nazwisko Wprowadź unikatową nazwę. Na przykład Pub-LB-PatientsPortal.
    Region (Region) Wybierz lokalizację, w której zostały utworzone maszyny wirtualne.
    SKU Standardowa
    Typ Public
    Warstwa Regionalny

    Zrzut ekranu przedstawiający kartę Podstawowe na ekranie Tworzenie modułu równoważenia obciążenia w witrynie Azure Portal.

Dodawanie konfiguracji adresu IP frontonu

  1. Wybierz pozycję Dalej: Konfiguracja adresu IP frontonu.

  2. Wybierz pozycję + Dodaj konfigurację adresu IP frontonu. Zostanie wyświetlone okienko Dodawanie konfiguracji adresu IP frontonu.

  3. Wprowadź następujące wartości dla każdego ustawienia.

    Ustawienie Wartość
    Nazwisko Wprowadź unikatową nazwę konfiguracji adresu IP frontonu. Na przykład myFrontendIP
    Wersja protokołu IP Wybierz pozycję IPv4
    Typ adresu IP Wybierz adres IP
    Publiczny adres IP Wybierz pozycję Utwórz nową, a następnie nadaj adresowi IP nazwę i wybierz pozycję Zapisz
    Moduł równoważenia obciążenia bramy Wybierz pozycję Brak

    Zrzut ekranu przedstawiający ukończone ustawienia konfiguracji Dodaj adres IP frontonu.

  4. Aby zamknąć okno dialogowe, wybierz pozycję Zapisz. Zostanie wyświetlone okienko Tworzenie modułu równoważenia obciążenia.

Dodawanie puli zaplecza

  1. Wybierz pozycję Dalej: Pule zaplecza.

  2. Wybierz pozycję + Dodaj pulę zaplecza. Zostanie wyświetlone okienko Dodawanie puli zaplecza.

  3. Wprowadź następujące wartości dla każdego ustawienia.

    Ustawienie Wartość
    Nazwisko Wprowadź unikatową nazwę puli zaplecza. Na przykład bepool-http.
    Sieć wirtualna Upewnij się, że wybrano pozycję BePortalVnet .
  4. W obszarze Konfiguracje adresów IP wybierz pozycję Dodaj. Zostanie wyświetlone okienko Dodawanie konfiguracji adresów IP do puli zaplecza.

  5. W obszarze Maszyna wirtualna wybierz maszyny wirtualne webVM1 i webVM2 , a następnie wybierz pozycję Dodaj.

    Zrzut ekranu przedstawiający ustawienia w okienku Dodawanie konfiguracji adresów IP do puli zaplecza.

  6. Ponownie zostanie wyświetlony ekran Dodawanie puli zaplecza. W obszarze Konfiguracje adresów IP wybierz maszyny wirtualne webVM1 i webVM2, a następnie wybierz pozycję Zapisz. Ponownie zostanie wyświetlony ekran Tworzenie modułu równoważenia obciążenia.

    Zrzut ekranu przedstawiający ustawienia ukończone na ekranie Dodawanie puli zaplecza.

Dodawanie reguły równoważenia obciążenia

Na koniec utwórzmy regułę dla modułu równoważenia obciążenia.

  1. Wybierz pozycję Dalej: Reguły ruchu przychodzącego.

  2. W sekcji Reguła równoważenia obciążenia wybierz pozycję + Dodaj regułę równoważenia obciążenia. Zostanie wyświetlone okienko Dodawanie reguły równoważenia obciążenia.

  3. Wprowadź następujące wartości dla każdego ustawienia.

    Ustawienie Wartość
    Nazwisko Nazwa reguły równoważenia obciążenia. Na przykład lbrule-http.
    Wersja protokołu IP Protokół IPv4
    Adres IP frontonu Wybierz wcześniej nazwany adres IP frontonu.
    Pula zaplecza Wybierz pulę zaplecza o nazwie wcześniej. Na przykład bepool-http.
    Protokół TCP
    Port Wprowadź 80 (wartość domyślna).
    Port zaplecza Wprowadź 80 (wartość domyślna).
    Sonda kondycji Wybierz link Utwórz nową. Zostanie wyświetlone okno dialogowe Dodawanie sondy kondycji .
  4. Wprowadź następujące wartości dla każdego ustawienia.

    Ustawienie Wartość
    Nazwisko Nazwa sondy kondycji. Na przykład healthprobe-http.
    Protokół TCP
    Port Wprowadź 80 (wartość domyślna).
    Interwał Wprowadź liczbę 5 (wartość domyślna). Ta wartość to czas między sondami.
  5. Wybierz pozycję Zapisz , aby zamknąć okno dialogowe. Zostanie ponownie wyświetlone okienko Dodawanie reguły równoważenia obciążenia.

  6. Kontynuuj wprowadzanie następujących wartości dla każdego ustawienia.

    Ustawienie Wartość
    Trwałość sesji* Brak (domyślnie)
    Limit czasu bezczynności (w minutach) Wybierz cyfrę 4 (wartość domyślna). Ta wartość to czas, aby zachować otwarty protokół TCP (Transmission Control Protocol) lub połączenie HTTP bez polegania na klientach w celu wysyłania komunikatów o zachowaniu aktywności.
    Pływający adres IP Wyłączone (ustawienie domyślne).

    Dodaj nową regułę równoważenia obciążenia.

  7. Wybierz pozycję Zapisz , aby ukończyć konfigurację reguły równoważenia obciążenia.

  8. Ponownie zostanie wyświetlony ekran Tworzenie modułu równoważenia obciążenia. Wybierz pozycję Przejrzyj i utwórz.

  9. Po zakończeniu walidacji wybierz pozycję Utwórz. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.

  10. Na stronie Przegląd skopiuj i zapisz publiczny adres IP. Może być konieczne wybranie pozycji Zobacz więcej... w celu wyświetlenia publicznego adresu IP.

Tworzenie adresów IP

Najpierw będziemy potrzebować publicznego adres IP modułu równoważenia obciążenia.

  1. W usłudze Cloud Shell uruchom program PowerShell, uruchamiając następujące polecenie:

    pwsh
    
  2. W programie PowerShell utwórz nowy publiczny adres IP:

    $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. Utwórz adres IP frontonu przy użyciu polecenia cmdlet New-AzLoadBalancerFrontendIpConfig. Poniższy kod tworzy konfigurację adresu IP frontonu o nazwie myFrontEnd i dołącza adres myPublicIP:

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

Tworzenie modułu równoważenia obciążenia

W przypadku konfigurowania modułu równoważenia obciążenia przy użyciu programu PowerShell musisz utworzyć pulę adresów zaplecza, sondę kondycji i regułę przed utworzeniem samego modułu równoważenia.

  1. Utwórz pulę adresów zaplecza, uruchamiając polecenie cmdlet New-AzLoadBalancerBackendAddressPoolConfig . W ostatnich krokach dołączysz maszyny wirtualne do tej puli zaplecza. Poniższy przykład przedstawia sposób tworzenia puli adresów zaplecza o nazwie myBackEndPool:

    $backendPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "myBackEndPool"
    
  2. Utwórz sondę kondycji, aby umożliwić modułowi równoważenia obciążenia monitorowanie stanu portalu opieki zdrowotnej. Sonda kondycji dynamicznie dodaje lub usuwa maszyny wirtualne w rotacji modułu równoważenia obciążenia na podstawie ich odpowiedzi na kontrole kondycji.

    $probe = New-AzLoadBalancerProbeConfig `
      -Name "myHealthProbe" `
      -Protocol http `
      -Port 80 `
      -IntervalInSeconds 5 `
      -ProbeCount 2 `
      -RequestPath "/"
    
  3. Teraz potrzebujesz reguły modułu równoważenia obciążenia, aby zdefiniować sposób dystrybucji ruchu do maszyn wirtualnych. Zdefiniuj konfigurację adresu IP frontonu na potrzeby ruchu przychodzącego oraz pulę adresów IP zaplecza do odbierania ruchu, wraz z wymaganym portem źródłowym i docelowym. Aby mieć pewność, że ruch będzie kierowany tylko do maszyn wirtualnych w dobrej kondycji, zdefiniuj również sondę kondycji do użycia.

    $lbrule = New-AzLoadBalancerRuleConfig `
      -Name "myLoadBalancerRule" `
      -FrontendIpConfiguration $frontendIP `
      -BackendAddressPool $backendPool `
      -Protocol Tcp `
      -FrontendPort 80 `
      -BackendPort 80 `
      -Probe $probe
    
  4. Teraz możesz utworzyć podstawowy moduł równoważenia obciążenia, uruchamiając polecenie cmdlet 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. Połącz maszyny wirtualne z pulą zaplecza, aktualizując interfejsy sieciowe utworzone przez skrypt w celu użycia informacji puli zaplecza.

    $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. Uruchom następujące polecenie, aby uzyskać publiczny adres IP modułu równoważenia obciążenia i adres URL witryny internetowej:

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

Tworzenie modułu równoważenia obciążenia

Użyjmy interfejsu wiersza polecenia platformy Azure, aby utworzyć moduł równoważenia obciążenia i skojarzone z nim zasoby.

  1. Utwórz nowy publiczny adres IP.

    az network public-ip create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --allocation-method Static \
      --name myPublicIP
    
  2. Utwórz moduł równoważenia obciążenia.

    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. Utwórz sondę kondycji, która umożliwia modułowi równoważenia obciążenia monitorowanie stanu portalu opieki zdrowotnej. Sonda kondycji dynamicznie dodaje lub usuwa maszyny wirtualne z rotacji modułu równoważenia obciążenia na podstawie ich odpowiedzi na kontrole kondycji.

    az network lb probe create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --lb-name myLoadBalancer \
      --name myHealthProbe \
      --protocol tcp \
      --port 80  
    
  4. Teraz potrzebujesz reguły modułu równoważenia obciążenia, aby zdefiniować sposób dystrybucji ruchu do maszyn wirtualnych. Zdefiniuj konfigurację adresu IP frontonu na potrzeby ruchu przychodzącego oraz pulę adresów IP zaplecza do odbierania ruchu, wraz z wymaganym portem źródłowym i docelowym. Aby mieć pewność, że ruch będzie kierowany tylko do maszyn wirtualnych w dobrej kondycji, zdefiniuj również sondę kondycji do użycia.

    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. Połącz maszyny wirtualne z pulą zaplecza, aktualizując interfejsy sieciowe utworzone przez skrypt w celu użycia informacji puli zaplecza.

    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. Uruchom następujące polecenie, aby uzyskać publiczny adres IP modułu równoważenia obciążenia i adres URL witryny internetowej:

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

Testowanie konfiguracji modułu równoważenia obciążenia

Przetestujmy konfigurację modułu równoważenia obciążenia, pokazując, jak może dynamicznie obsługiwać problemy z dostępnością i kondycją.

  1. W nowej karcie przeglądarki przejdź do zanotowanego publicznego adresu IP. W przeglądarce zostanie wyświetlona odpowiedź z jednej z maszyn wirtualnych.

  2. Spróbuj "wymusić odświeżanie", naciskając Ctrl+F5 kilka razy, aby zobaczyć, że odpowiedź jest zwracana losowo z obu maszyn wirtualnych.

  3. W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Wszystkie zasoby. Następnie wybierz pozycję webVM1, a następnie wybierz pozycję Zatrzymaj.

  4. Wróć do karty, na której jest wyświetlana witryna internetowa, i wymuś odświeżenie strony internetowej. Wszystkie żądania zostaną zwrócone z maszyny wirtualnej webVM2.