Przeniesienie systemu równoważenia obciążenia sieci z pul docelowych do regionalnych usług backendu

1. Wprowadzenie

Ten przewodnik zawiera instrukcje dotyczące przenoszenia istniejącego systemu równoważenia obciążenia sieci z backendu puli docelowej do regionalnej usługi backendu.

Czego się nauczysz

  • Korzyści z regionalnych usług backendu
  • Tworzenie sieciowego systemu równoważenia obciążenia z pulami docelowymi
  • Przeprowadzanie weryfikacji puli docelowej
  • Tworzenie regionalnej usługi backendu przy użyciu niezarządzanych grup instancji
  • Przeprowadzanie migracji z puli docelowej do usługi backendu
  • Przeprowadzanie weryfikacji usług backendu

Czego potrzebujesz

  • Doświadczenie w zakresie systemów równoważenia obciążenia

2. Omówienie regionalnych usług backendu na potrzeby równoważenia obciążenia w sieci

Dzięki sieciowemu równoważeniu obciążenia klienci Google Cloud mają do dyspozycji zaawansowane narzędzie do rozdzielania ruchu zewnętrznego między maszyny wirtualne w regionie Google Cloud. Aby ułatwić klientom zarządzanie ruchem przychodzącym i kontrolowanie działania systemu równoważenia obciążenia, dodaliśmy ostatnio obsługę usług backendu w równoważeniu obciążenia sieciowego. Zapewnia to naszym klientom większą skalę, szybkość, wydajność i odporność wdrożenia w łatwy do zarządzania sposób.

Obecnie obsługujemy usługi backendu z równoważeniem obciążenia sieciowego, co jest znacznym ulepszeniem w porównaniu z poprzednim podejściem, czyli pulami docelowymi. Usługa backendu określa sposób, w jaki nasze systemy równoważenia obciążenia rozdzielają przychodzący ruch do dołączonych backendów, i zapewnia szczegółową kontrolę nad działaniem systemu równoważenia obciążenia.

3. Zalety regionalnych usług backendu

Wybór regionalnej usługi backendu jako systemu równoważenia obciążenia przynosi wiele korzyści dla Twojego środowiska.

267db35a58145be.png

Regionalne usługi backendu od samego początku zapewniają:

  • Kontrola stanu o wysokiej wierności z ujednoliconą kontrolą stanu – w przypadku regionalnych usług backendu możesz teraz w pełni korzystać z funkcji kontroli stanu systemu równoważenia obciążenia, co pozwala uniknąć ograniczeń starszych kontroli stanu HTTP. Ze względu na zgodność z przepisami klienci korzystający z równoważenia obciążenia sieci często prosili o kontrole stanu TCP z obsługą niestandardowych ciągów żądań i odpowiedzi lub protokołu HTTPS.
  • Większa odporność dzięki grupom przełączania awaryjnego – dzięki grupom przełączania awaryjnego możesz wyznaczyć jedną grupę instancji jako główną, a drugą jako dodatkową i przełączyć ruch, gdy sprawność instancji w aktywnej grupie spadnie poniżej określonego progu. Aby mieć większą kontrolę nad mechanizmem przełączania awaryjnego, możesz użyć agenta, takiego jak keepalived lub pacemaker, i udostępnić kontrolę stanu, która działa lub nie działa, w zależności od zmian stanu instancji backendu.
  • Skalowalność i wysoka dostępność dzięki zarządzanym grupom instancji – regionalne usługi backendu obsługują zarządzane grupy instancji jako backendy. Możesz teraz określić szablon dla instancji maszyn wirtualnych backendu i korzystać z autoskalowania na podstawie wykorzystania procesora lub innych wskaźników monitorowania.

Oprócz powyższych korzyści możesz też korzystać z funkcji opróżniania połączeń w przypadku protokołu zorientowanego na połączenie (TCP) i szybszego programowania w przypadku dużych wdrożeń.

Topologia sieci w ćwiczeniach z programowania

Ten przewodnik zawiera instrukcje dotyczące przenoszenia istniejącego systemu równoważenia obciążenia sieci z backendu puli docelowej do regionalnej usługi backendu.

Przejście na regionalną usługę backendu umożliwia korzystanie z funkcji takich jak kontrola stanu inna niż starsza (w przypadku protokołów TCP, SSL, HTTP, HTTPS i HTTP/2), zarządzane grupy instancji, zamykanie połączeń i zasady przełączania awaryjnego.

Ten przewodnik zawiera instrukcje dotyczące przejścia z tego przykładowego sieciowego systemu równoważenia obciążenia opartego na puli docelowej na regionalną usługę backendu.

b2ac8a09e53e27f8.png

Wcześniej: równoważenie obciążenia sieci z pulą docelową

Wdrożenie sieciowego systemu równoważenia obciążenia opartego na usłudze backendu będzie wyglądać tak:

f628fdad64c83af3.png

Po: równoważenie obciążenia sieciowego z regionalną usługą backendu

W tym przykładzie zakładamy, że masz tradycyjny sieciowy system równoważenia obciążenia oparty na puli docelowej z 2 instancjami w strefie us-central-1a i 2 instancjami w strefie us-central-1c.

Ogólne kroki wymagane w przypadku takiego przejścia to:

  1. Pogrupuj instancje puli docelowej w grupy instancji. Usługi backendu działają tylko z zarządzanymi lub niezarządzanymi grupami instancji. Pamiętaj, że chociaż nie ma limitu liczby instancji, które można umieścić w jednej puli docelowej, grupy instancji mają maksymalny rozmiar. Jeśli pula docelowa ma więcej instancji niż ta maksymalna liczba, musisz podzielić jej backendy na kilka grup instancji. Jeśli Twoje obecne wdrożenie obejmuje pulę docelową kopii zapasowych, utwórz dla tych instancji osobną grupę instancji. Ta grupa instancji zostanie skonfigurowana jako grupa przełączania awaryjnego.
  2. Utwórz regionalną usługę backendu. Jeśli wdrożenie obejmuje pulę docelową kopii zapasowej, podczas tworzenia usługi backendu musisz określić współczynnik przełączania awaryjnego. Wartość ta powinna być zgodna z wcześniej skonfigurowanym współczynnikiem przełączania awaryjnego wdrożenia puli docelowej.
  3. Dodaj do usługi backendu grupy instancji (utworzone wcześniej). Jeśli wdrożenie obejmuje zapasową pulę docelową, podczas dodawania odpowiedniej grupy instancji przełączania awaryjnego do usługi backendu oznacz ją flagą –failover.
  4. Skonfiguruj regułę przekierowania, która wskazuje nową usługę backendu. Masz 2 możliwości:
  • (Zalecane) Zaktualizuj dotychczasową regułę przekierowania, aby wskazywała usługę backendu. LUB
  • Utwórz nowe przekazywanie, które będzie wskazywać usługę backendu. Wymaga to utworzenia nowego adresu IP dla frontendu systemu równoważenia obciążenia. Następnie zmień ustawienia DNS, aby bezproblemowo przejść ze starego adresu IP systemu równoważenia obciążenia opartego na puli docelowej na nowy adres IP.

Samodzielne konfigurowanie środowiska

  1. Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

Zapamiętaj identyfikator projektu, czyli unikalną nazwę we wszystkich projektach Google Cloud (podana powyżej nazwa jest już zajęta i nie będzie działać w Twoim przypadku). W dalszej części tego laboratorium będzie on nazywany PROJECT_ID.

  1. Następnie musisz włączyć rozliczenia w konsoli Cloud, aby korzystać z zasobów Google Cloud.

Ukończenie tego laboratorium nie powinno wiązać się z dużymi kosztami, a nawet z żadnymi. Wykonaj instrukcje z sekcji „Czyszczenie”, w której znajdziesz informacje o tym, jak wyłączyć zasoby, aby uniknąć naliczenia opłat po zakończeniu tego samouczka. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.

Uruchamianie Cloud Shell

Z Google Cloud można korzystać zdalnie na laptopie, ale w tym module praktycznym będziesz używać Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.

W konsoli GCP kliknij ikonę Cloud Shell na pasku narzędzi w prawym górnym rogu:

bce75f34b2c53987.png

Uzyskanie dostępu do środowiska i połączenie się z nim powinno zająć tylko kilka chwil. Po zakończeniu powinno wyświetlić się coś takiego:

f6ef2b5f13479f3a.png

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera również stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i usprawnia proces uwierzytelniania. Wszystkie zadania w tym module możesz wykonać w przeglądarce.

Zaloguj się w Cloud Shell i ustaw identyfikator projektu.

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]

Perform setting your projectID:
projectid=YOUR-PROJECT-ID

echo $projectid

4. Utwórz sieć VPC

Sieć VPC

Z Cloud Shell

gcloud compute networks create network-lb --subnet-mode custom

Utwórz podsieć

Z Cloud Shell

gcloud compute networks subnets create network-lb-subnet \
        --network network-lb --range 10.0.0.0/24 --region us-central1

Tworzenie reguł zapory sieciowej

Z Cloud Shell

gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag

Tworzenie niezarządzanych instancji

Utwórz 2 instancje w każdej strefie: us-central1-a i us-central1-c

Tworzenie instancji 1 w Cloud Shell

gcloud compute instances create www1 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-a \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart
echo '<!doctype html><html><body><h1>www1</h1></body></html>' | tee /var/www/html/index.html"

Tworzenie instancji 2 w Cloud Shell

gcloud compute instances create www2 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-a \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart 
echo '<!doctype html><html><body><h1>www2</h1></body></html>' | tee /var/www/html/index.html"

Tworzenie instancji 3 w Cloud Shell

gcloud compute instances create www3 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-c \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update 
sudo apt-get install apache2 -y 
sudo service apache2 restart 
echo '<!doctype html><html><body><h1>www3</h1></body></html>' | tee /var/www/html/index.html"

Tworzenie instancji 4 w Cloud Shell

gcloud compute instances create www4 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-c \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update 
sudo apt-get install apache2 -y 
sudo service apache2 restart
echo '<!doctype html><html><body><h1>www4</h1></body></html>' | tee /var/www/html/index.html"

Utwórz regułę zapory sieciowej, która przepuszcza ruch zewnętrzny do tych instancji maszyn wirtualnych

Z Cloud Shell

gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag

Tworzenie statycznego zewnętrznego adresu IP dla systemu równoważenia obciążenia

Z Cloud Shell

gcloud compute addresses create network-lb-ip-1 \
    --region us-central1

Dodawanie starszego zasobu kontroli stanu HTTP

Z Cloud Shell

gcloud compute http-health-checks create basic-check

5. Tworzenie reguły przekierowania i puli docelowej

Tworzenie puli docelowej

gcloud compute target-pools create www-pool \
            --region us-central1 --http-health-check basic-check

Dodaj instancje do puli docelowej us-central1-a

gcloud compute target-pools add-instances www-pool \
--instances www1,www2 \
--instances-zone us-central1-a

Dodaj instancje do puli docelowej us-central1-c

gcloud compute target-pools add-instances www-pool \
--instances www3,www4 \
--instances-zone us-central1-c

Dodawanie reguły przekierowania

gcloud compute forwarding-rules create www-rule \
--region us-central1 \
--ports 80 \
--address network-lb-ip-1 \
--target-pool www-pool

Sprawdzanie działania puli docelowej

Określ adres IP frontendu, wybierając kolejno Load Balancers (Systemy równoważenia obciążenia) → Frontends (Frontendy) (www-rule).

Użyj polecenia curl w terminalu stacji roboczej, aby uzyskać dostęp do zewnętrznego adresu IP i obserwować równoważenie obciążenia na 4 instancjach docelowych. Po sprawdzeniu zamknij terminal.

while true; do curl -m1 IP_ADDRESS; done

6. Przenoszenie sieciowego systemu równoważenia obciążenia z puli docelowej do usługi backendu

Tworzenie ujednoliconych kontroli stanu dla usługi backendu

gcloud compute health-checks create tcp my-tcp-health-check --port 80 --region us-central1

Tworzenie grup instancji na podstawie istniejących instancji z puli docelowej

gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1a --zone=us-central1-a

gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1a --zone=us-central1-a --instances=www1,www2

Tworzenie grup instancji na podstawie istniejących instancji z puli docelowej

gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1c --zone=us-central1-c

gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1c --zone=us-central1-c --instances=www3,www4

Utwórz usługę backendu i powiąż ją z nowo utworzonymi kontrolami stanu

gcloud compute backend-services create my-backend-service --region us-central1 --health-checks my-tcp-health-check --health-checks-region us-central1 --load-balancing-scheme external

Skonfiguruj usługę backendu i dodaj grupy instancji

gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1a --instance-group-zone us-central1-a --region us-central1

gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1c --instance-group-zone us-central1-c --region us-central1

Zaktualizuj istniejącą regułę przekierowania, aby obsługiwała usługi backendu

Zapisz nazwę reguły przekierowania „www-rule” i powiązany z nią adres IP, wykonując te czynności:

Wybierz Równoważenie obciążenia → Interfejsy

Zwróć też uwagę na 4 pule docelowe.

Wybierz kolejno Równoważenie obciążenia → Wybierz „www-pool”

Kierowanie ruchu do usług backendu przez zaktualizowanie istniejącej reguły przekierowania

gcloud compute forwarding-rules set-target www-rule --region=us-central1 --backend-service my-backend-service --region us-central1

Sprawdź, czy system równoważenia obciążenia „www-pool” nie jest już skonfigurowany z frontendem „www-rule” (patrz zrzut ekranu poniżej).

Wybierz system równoważenia obciążenia → www-pool

9a393b3ca4e0942c.png

Sprawdź, czy reguła przekierowania frontendu jest teraz powiązana z systemem równoważenia obciążenia „my-backend-service”.

Wybierz Równoważenie obciążenia → Interfejsy

Zwróć uwagę, że nazwa reguły „www-rule” i adres IP zostały zachowane, a system równoważenia obciążenia „my-backend-service” jest teraz używany.

Użyj polecenia curl w terminalu stacji roboczej, aby uzyskać dostęp do zewnętrznego adresu IP i obserwować równoważenie obciążenia w nowo powiązanej usłudze backendu. Po sprawdzeniu zamknij terminal.

while true; do curl -m1 IP_ADDRESS; done

7. Procedura czyszczenia

gcloud compute forwarding-rules delete www-rule --region=us-central1 --quiet
 
gcloud compute backend-services delete my-backend-service --region us-central1 --quiet
 
gcloud compute target-pools delete www-pool --region us-central1 --quiet
 
gcloud compute addresses delete network-lb-ip-1 --region us-central1 --quiet

gcloud compute firewall-rules delete www-firewall-network-lb --quiet
 
gcloud compute instances delete www4 --zone us-central1-c --quiet
 
gcloud compute instances delete www3 --zone us-central1-c --quiet
 
gcloud compute instances delete www2 --zone us-central1-a --quiet

gcloud compute instances delete www1 --zone us-central1-a --quiet
 
gcloud compute networks subnets delete network-lb-subnet --region us-central1 --quiet

gcloud compute networks delete network-lb --quiet

gcloud compute instance-groups unmanaged delete www-instance-group-central1a --zone us-central1-a --quiet

gcloud compute instance-groups unmanaged delete www-instance-group-central1c --zone us-central1-c --quiet

8. Gratulacje!

Gratulujemy ukończenia ćwiczenia.

Omówione zagadnienia

  • Korzyści z regionalnych usług backendu
  • Tworzenie sieciowego systemu równoważenia obciążenia z pulami docelowymi
  • Przeprowadzanie weryfikacji puli docelowej
  • Tworzenie regionalnej usługi backendu przy użyciu niezarządzanych grup instancji
  • Przeprowadzanie migracji z puli docelowej do usługi backendu
  • Przeprowadzanie weryfikacji usług backendu