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

  • Omówienie zalet regionalnych usług backendu
  • Tworzenie systemu równoważenia obciążenia sieci z pulami docelowymi
  • Przeprowadź weryfikację puli docelowej
  • Utwórz regionalną usługę backendu przy użyciu niezarządzanych grup instancji
  • Migracja z puli docelowej do usługi backendu
  • Przeprowadź weryfikację usług backendu

Czego potrzebujesz

  • Doświadczenie z systemami równoważenia obciążenia

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

Dzięki równoważeniu obciążenia sieci klienci Google Cloud mają zaawansowane narzędzie do rozdzielania ruchu zewnętrznego między maszyny wirtualne w regionie Google Cloud. Aby ułatwić naszym klientom zarządzanie ruchem przychodzącym i kontrolę zachowania systemu równoważenia obciążenia, niedawno dodaliśmy do równoważenia obciążenia sieci 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 z systemem równoważenia obciążenia sieci, który jest znacznie ulepszeniem w porównaniu z poprzednim podejściem, czyli pulami docelowymi. 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ą:

  • Wysoka jakość kontroli stanu z ujednoliconą kontrolą stanu – dzięki regionalnym usługom backendu możesz teraz w pełni korzystać z funkcji równoważenia obciążenia, co eliminuje ograniczenia związane ze starszymi kontrolami stanu HTTP. Ze względu na zgodność z przepisami częstymi żądaniami klientów korzystający z systemu równoważenia obciążenia sieci były kontrole stanu TCP z obsługą niestandardowych ciągów żądań i odpowiedzi lub HTTPS.
  • Większa odporność dzięki grupom przełączania awaryjnego – dzięki grupom przełączania awaryjnego możesz oznaczyć grupę instancji jako główną, a inną jako dodatkową. Przełączaj awaryjnie 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 utrzymywanie aktywności lub pacemaker. Na podstawie zmian stanu instancji backendowej kontrolka stanu będzie sprawna lub niesprawna.
  • Skalowalność i wysoka dostępność dzięki zarządzanym grupom instancji – regionalne usługi backendu obsługują zarządzane grupy instancji jako backendy. Teraz możesz określić szablon dla instancji maszyn wirtualnych backendu i wykorzystać autoskalowanie na podstawie wykorzystania procesora lub innych wskaźników monitorowania.

Oprócz tego będzie można skorzystać z funkcji opróżniania połączeń w przypadku protokołu TCP (ang. Connection Engagement Protocol) i skrócić czas programowania w przypadku dużych wdrożeń.

Topologia sieci Codelabs

Ten przewodnik zawiera instrukcje 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żliwi Ci skorzystanie z takich funkcji jak starsze kontrole stanu (dla protokołów TCP, SSL, HTTP, HTTPS i HTTP/2), zarządzane grupy instancji, zamykanie połączeń i zasady przełączania awaryjnego.

Z tego przewodnika dowiesz się, jak przejść z poniższego przykładowego systemu równoważenia obciążenia opartego na puli docelowej na użycie regionalnej usługi backendu

b2ac8a09e53e27f8.png

Przed: równoważenie obciążenia sieci z pulą docelową

Wynikowe wdrożenie systemu równoważenia obciążenia opartego na usłudze backendu będzie wyglądać tak.

f628fdad64c83af3.png

Po: równoważenie 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.

Ogólnie czynności, które należy wykonać, aby dokonać takiego przejścia:

  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 pojedynczej puli docelowej, grupy instancji mają maksymalny rozmiar. Jeśli pula docelowa ma więcej instancji niż maksymalna liczba instancji, musisz podzielić backendy na kilka grup instancji. Jeśli istniejące wdrożenie zawiera zapasową pulę docelową, utwórz oddzielną grupę dla tych instancji. Ta grupa instancji zostanie skonfigurowana jako grupa przełączania awaryjnego.
  2. Utwórz regionalną usługę backendu. Jeśli Twoje wdrożenie obejmuje zapasową pulę docelową, podczas tworzenia usługi backendu musisz określić współczynnik przełączania awaryjnego. Powinien on odpowiadać współczynnikowi przełączania awaryjnego skonfigurowanym wcześniej dla wdrożenia puli docelowej.
  3. Dodaj grupy instancji (utworzone wcześniej) do usługi backendu. Jeśli wdrożenie obejmuje zapasową pulę docelową, podczas dodawania do usługi backendu oznacz odpowiednią grupę instancji przełączania awaryjnego flagą „-failover”.
  4. Skonfiguruj regułę przekierowania, która wskazuje nową usługę backendu. Dostępne są 2 opcje:
  • (Zalecane) Zaktualizuj istniejącą regułę przekierowania, aby wskazywała usługę backendu. LUB
  • Utwórz nowe przekierowanie wskazujące usługę backendu. Wymaga to utworzenia nowego adresu IP dla frontendu systemu równoważenia obciążenia. Następnie zmodyfikuj ustawienia DNS, aby płynnie 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 Cloud i utwórz nowy projekt lub wykorzystaj już istniejący. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

Zapamiętaj identyfikator projektu, unikalną nazwę we wszystkich projektach Google Cloud (powyższa nazwa jest już zajęta i nie będzie Ci odpowiadać). W dalszej części tego ćwiczenia w programie będzie ona określana jako PROJECT_ID.

  1. Następnie musisz włączyć płatności w Cloud Console, aby korzystać z zasobów Google Cloud.

Ukończenie tego ćwiczenia z programowania nie powinno kosztować zbyt wiele. Postępuj zgodnie z instrukcjami podanymi w sekcji „Czyszczenie” W tym samouczku znajdziesz wskazówki, jak wyłączyć zasoby, aby uniknąć naliczania opłat. 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 ramach tego ćwiczenia z programowania wykorzystasz Google Cloud Shell – środowisko wiersza poleceń działające w chmurze.

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

bce75f34b2c53987.png

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

f6ef2b5f13479f3a.png

Ta maszyna wirtualna ma wszystkie potrzebne narzędzia dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud, znacząco zwiększając 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

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 instancji niezarządzanych

Utwórz instancje po 2 instancje na strefę, us-central1-a & 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. Utwórz regułę przekierowania i pulę docelową

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

Zweryfikuj funkcję puli docelowej

Zidentyfikuj adres IP frontendu, wybierając System równoważenia obciążenia → Frontendy (www-rule).

Za pomocą polecenia curl w terminalu stacji roboczej możesz uzyskać dostęp do zewnętrznego adresu IP i obserwować równoważenie obciążenia w 4 instancjach docelowych. Po weryfikacji zamknij terminal.

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

Tworzenie usługi backendu i powiązanie jej 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ła usługi backendu

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

Wybierz system równoważenia obciążenia → Frontendy.

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

Zweryfikuj system równoważenia obciążenia „www-pool” nie jest już skonfigurowane za pomocą frontendu „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 → Frontendy.

Zwróć uwagę na nazwę reguły „www-rule” Adres IP zostanie zachowany, a system równoważenia obciążenia „my-backend-service” jest teraz w użyciu

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 weryfikacji zamknij terminal.

while true; do curl -m1 IP_ADDRESS; done

7. Etapy 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 ćwiczeń z programowania.

Omówione zagadnienia

  • Omówienie zalet regionalnych usług backendu
  • Tworzenie systemu równoważenia obciążenia sieci z pulami docelowymi
  • Przeprowadź weryfikację puli docelowej
  • Utwórz regionalną usługę backendu przy użyciu niezarządzanych grup instancji
  • Migracja z puli docelowej do usługi backendu
  • Przeprowadzanie weryfikacji usług backendu