Ćwiczenie — konfigurowanie publicznego modułu równoważenia obciążenia
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:
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
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>
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.
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 .
W polu wyszukiwania usługa wyszukiwania i marketplace wprowadź ciąg Load Balancer, a następnie naciśnij Enter.
Z wyświetlonej listy wybierz pozycję Load Balancer — Microsoft, a następnie wybierz pozycję Utwórz.
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
Dodawanie konfiguracji adresu IP frontonu
Wybierz pozycję Dalej: Konfiguracja adresu IP frontonu.
Wybierz pozycję + Dodaj konfigurację adresu IP frontonu. Zostanie wyświetlone okienko Dodawanie konfiguracji adresu IP frontonu.
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 Aby zamknąć okno dialogowe, wybierz pozycję Zapisz. Zostanie wyświetlone okienko Tworzenie modułu równoważenia obciążenia.
Dodawanie puli zaplecza
Wybierz pozycję Dalej: Pule zaplecza.
Wybierz pozycję + Dodaj pulę zaplecza. Zostanie wyświetlone okienko Dodawanie puli zaplecza.
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 . W obszarze Konfiguracje adresów IP wybierz pozycję Dodaj. Zostanie wyświetlone okienko Dodawanie konfiguracji adresów IP do puli zaplecza.
W obszarze Maszyna wirtualna wybierz maszyny wirtualne webVM1 i webVM2 , a następnie wybierz pozycję Dodaj.
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.
Dodawanie reguły równoważenia obciążenia
Na koniec utwórzmy regułę dla modułu równoważenia obciążenia.
Wybierz pozycję Dalej: Reguły ruchu przychodzącego.
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.
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 . 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. Wybierz pozycję Zapisz , aby zamknąć okno dialogowe. Zostanie ponownie wyświetlone okienko Dodawanie reguły równoważenia obciążenia.
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). Wybierz pozycję Zapisz , aby ukończyć konfigurację reguły równoważenia obciążenia.
Ponownie zostanie wyświetlony ekran Tworzenie modułu równoważenia obciążenia. Wybierz pozycję Przejrzyj i utwórz.
Po zakończeniu walidacji wybierz pozycję Utwórz. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.
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.
W usłudze Cloud Shell uruchom program PowerShell, uruchamiając następujące polecenie:
pwsh
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"
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.
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"
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 "/"
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
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
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
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.
Utwórz nowy publiczny adres IP.
az network public-ip create \ --resource-group <rgn>[sandbox resource group name]</rgn> \ --allocation-method Static \ --name myPublicIP
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
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
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
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
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ą.
W nowej karcie przeglądarki przejdź do zanotowanego publicznego adresu IP. W przeglądarce zostanie wyświetlona odpowiedź z jednej z maszyn wirtualnych.
Spróbuj "wymusić odświeżanie", naciskając Ctrl+F5 kilka razy, aby zobaczyć, że odpowiedź jest zwracana losowo z obu maszyn wirtualnych.
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.
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.