1. Wprowadzenie
Ten przewodnik zawiera instrukcje przenoszenia istniejącego systemu równoważenia obciążenia sieci z backendu puli docelowej do regionalnej usługi backendu.
Czego się nauczysz
- Korzyści płynące z regionalnych usług backendu
- Tworzenie systemu równoważenia obciążenia sieci z pulami docelowymi
- Weryfikacja puli docelowej
- Tworzenie regionalnej usługi backendu przy użyciu niezarządzanych grup instancji
- Przenoszenie puli docelowej do usługi backendu
- Weryfikowanie usług backendu
Czego potrzebujesz
- doświadczenie w pracy z systemami równoważenia obciążenia;
2. Omówienie regionalnych usług backendu dla systemu równoważenia obciążenia sieci
Dzięki równoważonemu obciążeniu sieci klienci Google Cloud mają potężne narzędzie do rozprowadzania ruchu zewnętrznego między maszynami wirtualnymi w regionie Google Cloud. Aby ułatwić naszym klientom zarządzanie przychodzącym ruchem i kontrolowanie działania systemu równoważenia obciążenia, ostatnio dodaliśmy do sieciowego systemu równoważenia obciążenia obsługę usług backendu. Zapewnia to naszym klientom większą skalowalność, szybkość i wydajność oraz odporność na wdrażanie, a wszystko to w prosty sposób.
Obsługujemy teraz usługi backendu za pomocą równoważenia obciążenia sieci – jest to znaczna poprawa w stosunku do poprzedniego podejścia, czyli pul docelowych. Usługa backendu definiuje sposób, w jaki nasze systemy równoważenia obciążenia rozdzielają ruch przychodzący do podłączonych backendów, i zapewnia szczegółową kontrolę nad jego zachowaniem.
3. Zalety regionalnych usług backendu
Wybór regionalnej usługi backendu jako systemu równoważenia obciążenia przynosi środowisku wiele korzyści.
Udostępniane w ten sposób regionalne usługi backendu zapewniają:
- Wysokiej jakości kontrola stanu dzięki zjednoczonej kontroli stanu – dzięki regionalnym usługom backendowym możesz teraz w pełni korzystać z funkcji kontroli stanu systemu równoważenia obciążenia, co pozwoli Ci uniknąć ograniczeń starszych kontroli stanu HTTP. Ze względu na zgodność z przepisami często używanymi przez klientów korzystających z systemu równoważenia obciążenia sieci żądaniami były kontrole stanu TCP z obsługą niestandardowych ciągów żądań i odpowiedzi lub HTTPS.
- Lepsza odporność dzięki grupom przełączania awaryjnego – dzięki grupom przełączania awaryjnego możesz wyznaczyć grupę instancji jako główną, a drugą jako dodatkową i przełączać ruch, gdy sprawność instancji w aktywnej grupie spadnie poniżej określonego progu. Aby uzyskać większą kontrolę nad mechanizmem przełączania awaryjnego, możesz użyć agenta takiego jak keepalived lub pacemaker i ujawnić kontrolę stanu, która zwraca stan „OK” lub „Niepowodzenie” w zależności od 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 na backendzie i wykorzystać autoskalowanie na podstawie wykorzystania procesora lub innych danych monitorowania.
Oprócz tego możesz korzystać z odłączania połączeń w przypadku protokołów skoncentrowanych na połączeniach (TCP) oraz szybszego programowania w przypadku dużych wdrożeń.
Topologia sieci w Codelab
Ten przewodnik zawiera instrukcje przejścia z istniejącego systemu równoważenia obciążenia sieci z backendu puli docelowej do regionalnej usługi backendu.
Przejście na regionalną usługę backendową pozwala korzystać z funkcji takich jak niestandardowe kontrole stanu (dla TCP, SSL, HTTP, HTTPS i HTTP/2), zarządzane grupy instancji, zamykanie połączeń i zasady przełączania awaryjnego.
W tym przewodniku znajdziesz instrukcje przejścia z poniższych przykładowych systemów równoważenia obciążenia sieci opartych na puli docelowej na korzystanie z regionalnej usługi backendu.
Wcześniej: sieciowy system równoważenia obciążenia z pulą docelową
Wynikające z tego wdrożenie sieciowego systemu równoważenia obciążenia opartego na usłudze backendu będzie wyglądać tak.
Po zmianie: system równoważenia obciążenia sieci z regionalną usługą backendu
W tym przykładzie zakładamy, że masz tradycyjny 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.
Aby przejść na nową wersję usługi, musisz wykonać te czynności:
- Pogrupuj instancje puli docelowej w grupy instancji. Usługi backendu działają tylko w zarządzanych lub niezarządzanych grupach 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ż maksymalna liczba instancji, musisz podzielić jej backendy na kilka grup instancji. Jeśli Twoje dotychczasowe wdrożenie zawiera zapasowy zbiór docelowy, 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 rezerwowy pulę docelową, podczas tworzenia usługi backendowej musisz określić współczynnik przełączania awaryjnego. Powinien on odpowiadać współczynnikowi przełączania skonfigurowanemu wcześniej w przypadku wdrożenia puli docelowej.
- Dodaj grupy instancji (utworzone wcześniej) do usługi backendu. Jeśli wdrożenie obejmuje zapasowy zbiór docelowy, podczas dodawania grupy instancji zapasowych do usługi backendu oznacz odpowiednią grupę za pomocą flagi –failover.
- Skonfiguruj regułę przekierowania, która wskazuje na nową usługę backendu. Dostępne są 2 opcje:
- (zalecane) Zaktualizuj dotychczasową regułę przekierowania, aby wskazywała usługę backendu. LUB
- Utwórz nowe przekierowanie, które wskazuje na 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 na podstawie 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, który jest unikalną nazwą w ramach wszystkich projektów Google Cloud (podane powyżej imię i nazwisko są już zajęte i nie będą działać). W dalszej części tego samouczka będzie on nazywany PROJECT_ID
.
- Następnie musisz włączyć płatności w Cloud Console, aby korzystać z zasobów Google Cloud.
Przejście przez ten Codelab nie powinno wiązać się z wielkimi kosztami, jeśli w ogóle będą jakieś. Pamiętaj, aby wykonać instrukcje podane w sekcji „Czyszczenie”, która zawiera wskazówki dotyczące wyłączania zasobów, aby nie zostały naliczone opłaty po zakończeniu tego samouczka. Nowi użytkownicy Google Cloud mogą skorzystać z programu bezpłatnego okresu próbnego o wartości 300 USD.
Uruchamianie Cloud Shell
Google Cloud można obsługiwać zdalnie z laptopa, ale w tym ćwiczeniu 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 jego zakończeniu powinno wyświetlić się coś takiego:
Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie poprawia wydajność sieci i uwierzytelnianie. 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
Utwórz reguły 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 instancje po 2 instancje na strefę, us-central1-a i us-central1-c
Utwórz instancję 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"
Utwórz instancję 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"
Utwórz instancję 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"
Utwórz instancję 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 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 funkcjonalności puli docelowej
Aby określić adres IP frontendu, wybierz Systemy równoważenia obciążenia → Frontendy (reguła www)
Użyj polecenia curl na terminalu stacji roboczej, aby uzyskać dostęp do zewnętrznego adresu IP i obserwować równoważenie obciążenia w 4 docelowych instancjach. Zamknij terminal po zakończeniu weryfikacji.
while true; do curl -m1 IP_ADDRESS; done
6. Przenoszenie systemu równoważenia obciążenia sieci 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ązaj 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
Konfigurowanie usługi backendu i dodawanie grup 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ć usługi backendu
Zapisz nazwę reguły przekierowania „www-rule” i powiązany adres IP, wykonując te czynności:
Wybierz System równoważenia obciążenia → Front-endy
Warto też zwrócić uwagę na 4 pule docelowe.
Wybierz System równoważenia obciążenia → wybierz „www-pool”
Kieruj ruch 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” (zobacz zrzut ekranu poniżej)
Wybierz System równoważenia obciążenia → www-pool
Weryfikacja reguły przekierowania frontendu jest teraz powiązana z systemem równoważenia obciążenia „my-backend-service”
Wybierz System równoważenia obciążenia → Front-endy
Zwróć uwagę na to, że adres IP reguły „www-rule” jest zachowywany, a system równoważenia obciążenia „my-backend-service” jest teraz używany.
Użyj polecenia curl w terminalu na 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. Zamknij terminal po zakończeniu weryfikacji.
while true; do curl -m1 IP_ADDRESS; done
7. Czyszczenie
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 płynące z regionalnych usług backendu
- Tworzenie systemu równoważenia obciążenia sieci z pulami docelowymi
- Weryfikacja puli docelowej
- Tworzenie regionalnej usługi backendu przy użyciu niezarządzanych grup instancji
- Przenoszenie puli docelowej do usługi backendu
- Weryfikowanie usług backendu