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

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.

267db35a58145be.png

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.

b2ac8a09e53e27f8.png

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.

f628fdad64c83af3.png

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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

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

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

bce75f34b2c53987.png

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:

f6ef2b5f13479f3a.png

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

9a393b3ca4e0942c.png

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