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.

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.

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:

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:
- 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.
- 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.
- 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.
- 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
- 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ć.



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.
- 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:

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:

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

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