Punkty kontrolne
Create multiple web server instances
/ 30
Configure the load balancing service
/ 20
Create an HTTP load balancer
/ 50
Konfigurowanie systemów równoważenia obciążenia sieci i HTTP
- GSP007
- Opis
- Czego się nauczysz
- Konfiguracja i wymagania
- Zadanie 1. Skonfiguruj domyślny region i strefę wszystkich zasobów
- Zadanie 2. Utwórz wiele instancji serwera WWW
- Zadanie 3. Skonfiguruj usługę równoważenia obciążenia
- Zadanie 4. Wyślij ruch do instancji
- Zadanie 5. Utwórz system równoważenia obciążenia HTTP
- Zadanie 6. Przetestuj ruch wysyłany do instancji
- Gratulacje!
GSP007
Opis
W tym praktycznym module poznasz różnice między systemem równoważenia obciążenia sieci a systemem równoważenia obciążenia HTTP. Nauczysz się także, jak konfigurować te systemy do obsługi aplikacji działających w maszynach wirtualnych Compute Engine.
Istnieje kilka metod równoważenia obciążenia w Google Cloud. W tym module nauczysz się konfigurować te systemy równoważenia obciążenia:
Zachęcamy do wpisywania poleceń samodzielnie, ponieważ pomaga to poznać najważniejsze zagadnienia. Wiele modułów zawiera blok kodu, w którym znajdują się wymagane polecenia. W trakcie realizacji tego modułu możesz po prostu kopiować polecenia z bloku kodu i wklejać je w odpowiednie miejsca.
Czego się nauczysz
- Skonfigurujesz system równoważenia obciążenia sieci.
- Skonfigurujesz system równoważenia obciążenia HTTP.
- Nauczysz się także rozróżniać systemy równoważenia obciążenia sieci i systemy równoważenia obciążenia HTTP.
Konfiguracja i wymagania
Zanim klikniesz przycisk Rozpocznij moduł
Zapoznaj się z tymi instrukcjami. Moduły mają limit czasowy i nie można ich zatrzymać. Gdy klikniesz Rozpocznij moduł, na liczniku wyświetli się informacja o tym, na jak długo udostępniamy Ci zasoby Google Cloud.
W tym praktycznym module możesz spróbować swoich sił w wykonywaniu opisywanych działań w prawdziwym środowisku chmury, a nie w jego symulacji lub wersji demonstracyjnej. Otrzymasz nowe, tymczasowe dane logowania, dzięki którym zalogujesz się i uzyskasz dostęp do Google Cloud na czas trwania modułu.
Do ukończenia modułu potrzebne będą:
- dostęp do standardowej przeglądarki internetowej (zalecamy korzystanie z przeglądarki Chrome).
- Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
Rozpoczynanie modułu i logowanie się w konsoli Google Cloud
-
Kliknij przycisk Rozpocznij moduł. Jeśli moduł jest odpłatny, otworzy się wyskakujące okienko, w którym możesz wybrać formę płatności. Po lewej stronie znajduje się panel Szczegóły modułu z następującymi elementami:
- przyciskiem Otwórz konsolę Google Cloud;
- czasem, który Ci pozostał;
- tymczasowymi danymi logowania, których musisz użyć w tym module;
- innymi informacjami potrzebnymi do ukończenia modułu.
-
Kliknij Otwórz konsolę Google Cloud (lub kliknij prawym przyciskiem myszy i wybierz Otwórz link w oknie incognito, jeśli korzystasz z przeglądarki Chrome).
Moduł uruchomi zasoby, po czym otworzy nową kartę ze stroną logowania.
Wskazówka: otwórz karty obok siebie w osobnych oknach.
Uwaga: jeśli pojawi się okno Wybierz konto, kliknij Użyj innego konta. -
W razie potrzeby skopiuj nazwę użytkownika znajdującą się poniżej i wklej ją w oknie logowania.
{{{user_0.username | "Username"}}} Nazwę użytkownika znajdziesz też w panelu Szczegóły modułu.
-
Kliknij Dalej.
-
Skopiuj podane niżej hasło i wklej je w oknie powitania.
{{{user_0.password | "Password"}}} Hasło znajdziesz też w panelu Szczegóły modułu.
-
Kliknij Dalej.
Ważne: musisz użyć danych logowania podanych w module. Nie używaj danych logowania na swoje konto Google Cloud. Uwaga: korzystanie z własnego konta Google Cloud w tym module może wiązać się z dodatkowymi opłatami. -
Na kolejnych stronach wykonaj następujące czynności:
- Zaakceptuj Warunki korzystania z usługi.
- Nie dodawaj opcji odzyskiwania ani uwierzytelniania dwuskładnikowego (ponieważ konto ma charakter tymczasowy).
- Nie rejestruj się w bezpłatnych wersjach próbnych.
Poczekaj, aż na karcie otworzy się konsola Google Cloud.
Aktywowanie Cloud Shell
Cloud Shell to maszyna wirtualna oferująca wiele narzędzi dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud. Dzięki wierszowi poleceń Cloud Shell zyskujesz dostęp do swoich zasobów Google Cloud.
- Kliknij Aktywuj Cloud Shell
na górze konsoli Google Cloud.
Po połączeniu użytkownik od razu jest uwierzytelniony. Uruchomi się Twój projekt o identyfikatorze PROJECT_ID. Dane wyjściowe zawierają wiersz z zadeklarowanym identyfikatorem PROJECT_ID dla tej sesji:
gcloud
to narzędzie wiersza poleceń Google Cloud. Jest ono już zainstalowane w Cloud Shell i obsługuje funkcję autouzupełniania po naciśnięciu tabulatora.
- (Opcjonalnie) Aby wyświetlić listę aktywnych kont, użyj tego polecenia:
-
Kliknij Autoryzuj.
-
Dane wyjściowe powinny wyglądać tak:
Dane wyjściowe:
- (Opcjonalnie) Aby wyświetlić identyfikator projektu, użyj tego polecenia:
Dane wyjściowe:
Przykładowe dane wyjściowe:
gcloud
w Google Cloud znajdziesz w opisie narzędzia wiersza poleceń gcloud.
Zadanie 1. Skonfiguruj domyślny region i strefę wszystkich zasobów
-
Ustaw region domyślny:
gcloud config set compute/region {{{project_0.default_region | Region}}} -
W Cloud Shell ustaw strefę domyślną:
gcloud config set compute/zone {{{project_0.default_zone | Zone}}} Więcej informacji o wybieraniu stref i regionów znajdziesz w przewodniku Compute Engine po regionach i strefach (w języku angielskim).
Zadanie 2. Utwórz wiele instancji serwera WWW
Na potrzeby tego scenariusza równoważenia obciążenia utwórz w Compute Engine 3 maszyny wirtualne i zainstaluj na nich serwer Apache. Następnie dodaj regułę zapory sieciowej, która przepuszcza ruch HTTP do tych instancji.
Podany kod ustawia strefę na
-
Utwórz maszynę wirtualną www1 w strefie domyślnej przy użyciu tego kodu:
gcloud compute instances create www1 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo " Serwer: www1
" | tee /var/www/html/index.html' -
Utwórz maszynę wirtualną www2 w strefie domyślnej przy użyciu tego kodu:
gcloud compute instances create www2 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo " Serwer: www2
" | tee /var/www/html/index.html' -
Utwórz maszynę wirtualną www3 w strefie domyślnej.
gcloud compute instances create www3 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo " Serwer: www3
" | tee /var/www/html/index.html' -
Utwórz regułę zapory sieciowej, która przepuszcza ruch zewnętrzny do instancji maszyn wirtualnych:
gcloud compute firewall-rules create www-firewall-network-lb \ --target-tags network-lb-tag --allow tcp:80
Teraz musisz uzyskać zewnętrzne adresy IP instancji i sprawdzić, czy działają.
-
Uruchom następujące polecenie, aby zobaczyć listę instancji. Ich adresy IP znajdziesz w kolumnie
EXTERNAL_IP
:gcloud compute instances list -
Sprawdź, czy poszczególne instancje działają – użyj polecenia
curl
, zastępując fragment [ADRES_IP] adresem IP odpowiedniej maszyny wirtualnej:curl http://[ADRES_IP] Kliknij poniżej Sprawdź postępy, aby zobaczyć, czy grupa serwerów WWW została utworzona.
Tworzenie wielu instancji serwera WWW
Zadanie 3. Skonfiguruj usługę równoważenia obciążenia
Gdy skonfigurujesz usługę równoważenia obciążenia, instancje maszyn wirtualnych będą otrzymywać pakiety wysyłane na ustawiony przez Ciebie statyczny zewnętrzny adres IP. Instancje utworzone za pomocą obrazów Compute Engine są automatycznie skonfigurowane do obsługi tego adresu IP.
-
Utwórz statyczny zewnętrzny adres IP dla systemu równoważenia obciążenia:
gcloud compute addresses create network-lb-ip-1 \ --region {{{project_0.default_region | Region}}} Dane wyjściowe:
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/{{{project_0.startup_script.project_region}}}/addresses/network-lb-ip-1]. -
Dodaj starszy zasób kontroli stanu HTTP:
gcloud compute http-health-checks create basic-check -
Dodaj pulę docelową w tym samym regionie co Twoje instancje. Uruchom następujące polecenie, aby utworzyć pulę docelową i użyć kontroli stanu, co jest wymagane do działania usługi:
gcloud compute target-pools create www-pool \ --region {{{project_0.default_region | Region}}} --http-health-check basic-check -
Dodaj instancje do puli:
gcloud compute target-pools add-instances www-pool \ --instances www1,www2,www3 -
Dodaj regułę przekierowania:
gcloud compute forwarding-rules create www-rule \ --region {{{project_0.default_region | Region}}} \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool Kliknij poniżej Sprawdź postępy, aby sprawdzić, czy został utworzony system równoważenia obciążenia sieci L4 wskazujący serwery WWW.
Skonfigurowanie usługi równoważenia obciążenia
Zadanie 4. Wyślij ruch do instancji
Kiedy usługa równoważenia obciążenia jest już skonfigurowana, możesz zacząć wysyłać ruch do reguły przekierowania i obserwować jego przepływ do poszczególnych instancji.
-
Wprowadź podane poniżej polecenie, aby wyświetlić zewnętrzny adres IP reguły przekierowania www-rule wykorzystywanej przez system równoważenia obciążenia:
gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}} -
Uzyskaj dostęp do zewnętrznego adresu IP
IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}} --format="json" | jq -r .IPAddress) -
Wyświetl zewnętrzny adres IP
echo $IPADDRESS -
Użyj polecenia
curl
, aby uzyskać dostęp do zewnętrznego adresu IP, zastępując fragmentADRES_IP
zewnętrznym adresem IP z poprzedniego polecenia:while true; do curl -m1 $IPADDRESS; done Odpowiedź z polecenia
curl
przełącza się losowo między 3 instancjami. Jeśli odpowiedź wskazuje początkowo na niepowodzenie, poczekaj około 30 sekund na pełne wczytanie konfiguracji i potwierdzenie dobrego stanu instancji, zanim spróbujesz ponownie. -
Aby zatrzymać wykonywanie polecenia, naciśnij Ctrl + C.
Zadanie 5. Utwórz system równoważenia obciążenia HTTP
Równoważenie obciążenia HTTP(S) jest zaimplementowane w Google Front End (GFE). Usługi GFE są rozproszone na całym świecie i działają wspólnie przy użyciu platformy sterującej i globalnej sieci Google. Reguły adresów URL można skonfigurować w taki sposób, aby kierowały ruch związany z danymi adresami URL do wyznaczonych instancji.
Żądania są zawsze kierowane do tej grupy instancji, która znajduje się najbliżej użytkownika, pod warunkiem że grupa ta ma wystarczającą moc obliczeniową i obsługuje dany typ żądań. Jeśli dana grupa nie ma wystarczającej mocy obliczeniowej, żądanie jest przesyłane do najbliższej grupy, która taką mocą dysponuje.
Aby można było skonfigurować system równoważenia obciążenia z backendem Compute Engine, maszyny wirtualne muszą być w grupie instancji. Zarządzana grupa instancji zawiera maszyny wirtualne z uruchomionymi serwerami backendu zewnętrznego systemu równoważenia obciążenia HTTP. Na potrzeby tego modułu serwery backendu mają własne nazwy hosta.
-
Najpierw utwórz szablon systemu równoważenia obciążenia:
gcloud compute instance-templates create lb-backend-template \ --region={{{project_0.default_region | Region}}} \ --network=default \ --subnet=default \ --tags=allow-health-check \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2' Zarządzane grupy instancji pozwalają uruchamiać aplikacje w wielu jednakowych maszynach wirtualnych. Zautomatyzowane usługi zarządzanych grup instancji, takie jak autoskalowanie, automatyczna naprawa, wdrożenie regionalne (w wielu strefach) i automatyczne aktualizacje, pomogą zapewnić skalowalność i wysoką dostępność Twoich zadań.
-
Utwórz zarządzaną grupę instancji na podstawie szablonu:
gcloud compute instance-groups managed create lb-backend-group \ --template=lb-backend-template --size=2 --zone={{{project_0.default_zone | Zone}}} -
Utwórz regułę zapory sieciowej
fw-allow-health-check
.gcloud compute firewall-rules create fw-allow-health-check \ --network=default \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80 Uwaga: reguła ruchu przychodzącego zezwala na ruch pochodzący z systemów kontroli stanu Google Cloud ( 130.211.0.0/22
i35.191.0.0/16
). W tym module do identyfikowania maszyn wirtualnych używany jest tag docelowyallow-health-check
. -
Teraz, gdy instancje są już uruchomione, skonfiguruj globalny statyczny zewnętrzny adres IP, którego klienci będą używać do uzyskiwania dostępu do systemu równoważenia obciążenia:
gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --global Zanotuj zarezerwowany adres IPv4:
gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global -
Utwórz kontrolę stanu systemu równoważenia obciążenia:
gcloud compute health-checks create http http-basic-check \ --port 80 Uwaga: Google Cloud udostępnia mechanizmy kontroli stanu, które określają, czy instancje backendowe prawidłowo reagują na ruch. Więcej informacji znajdziesz w artykule dotyczącym tworzenia kontroli stanu. -
Utwórz usługę backendu:
gcloud compute backend-services create web-backend-service \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global -
Dodaj grupę instancji jako backend do usługi backendu:
gcloud compute backend-services add-backend web-backend-service \ --instance-group=lb-backend-group \ --instance-group-zone={{{project_0.default_zone | Zone}}} \ --global -
Utwórz mapę URL, aby kierować przychodzące żądania do domyślnej usługi backendu:
gcloud compute url-maps create web-map-http \ --default-service web-backend-service Uwaga: mapa URL to zasób konfiguracji Google Cloud używany do kierowania żądań do usług lub zasobników backendu. Na przykład w przypadku zewnętrznego systemu równoważenia obciążenia HTTP(S) możesz użyć pojedynczej mapy URL do kierowania żądań do różnych miejsc docelowych zgodnie z regułami skonfigurowanymi w tej mapie: - Żądania do https://example.com/video trafiają do określonej usługi backendu.
- Żądania do https://example.com/audio trafiają do innej usługi backendu.
- Żądania do https://example.com/images trafiają do zasobnika backendu Cloud Storage.
- Żądania do wszystkich innych kombinacji hosta i ścieżki trafiają do domyślnej usługi backendu.
-
Utwórz docelowy serwer proxy HTTP, aby kierować żądania do mapy URL:
gcloud compute target-http-proxies create http-lb-proxy \ --url-map web-map-http -
Utwórz globalną regułę przekierowania, aby kierować przychodzące żądania do serwera proxy:
gcloud compute forwarding-rules create http-content-rule \ --address=lb-ipv4-1\ --global \ --target-http-proxy=http-lb-proxy \ --ports=80
Kliknij Sprawdź postępy, aby zobaczyć, czy system równoważenia obciążenia HTTP(S) L7 został utworzony.
Zadanie 6. Przetestuj ruch wysyłany do instancji
-
W konsoli Google Cloud otwórz Menu nawigacyjne i kliknij Usługi sieciowe > Równoważenie obciążenia.
-
Kliknij utworzony przed chwilą system równoważenia obciążenia (
web-map-http
). -
W sekcji Backend kliknij nazwę backendu, aby sprawdzić, czy maszyny wirtualne są W dobrym stanie. Jeśli nie, poczekaj chwilę i ponownie załaduj stronę.
-
Kiedy maszyny wirtualne będą w dobrym stanie, przetestuj system równoważenia obciążenia za pomocą przeglądarki – wejdź na
http://ADRES_IP
, zastępując fragmentADRES_IP
adresem IP systemu równoważenia obciążenia.
Może to potrwać 3–5 minut. Jeśli nie możesz się połączyć, poczekaj minutę i odśwież przeglądarkę.
Przeglądarka powinna wyrenderować stronę z treścią zawierającą nazwę instancji obsługującej stronę oraz strefę tej instancji (na przykład Page served from: lb-backend-group-xxxx
).
Gratulacje!
Udało Ci się stworzyć system równoważenia obciążenia sieci i system równoważenia obciążenia HTTP(S). Masz też za sobą ćwiczenia z używania szablonów instancji i zarządzanych grup instancji.
Ukończ kurs
Ten moduł do samodzielnego ukończenia jest częścią kursu Google Cloud Essentials.
Każdy kurs składa się z zestawu powiązanych ze sobą modułów, które razem tworzą ścieżkę szkoleniową.
Za ukończenie kursu otrzymujesz odznakę – stanowi ona potwierdzenie Twojego osiągnięcia.
Swoje odznaki możesz ustawiać jako widoczne publicznie, a także podać do nich linki w swoim CV lub w mediach społecznościowych.
Jeśli zapiszesz się na ten kurs, ukończony dziś moduł zostanie w nim od razu zaliczony.
Wszystkie dostępne kursy znajdziesz w katalogu.
Przejdź do kolejnego modułu
Możesz uczyć się dalej w ramach modułu Hello Node Kubernetes lub sprawdzić te proponowane moduły:
Kolejne kroki / Więcej informacji
- Konfigurowanie systemu równoważenia obciążenia sieci przy użyciu usługi backendu
- Konfigurowanie prostego zewnętrznego systemu równoważenia obciążenia HTTPS
- Omówienie zewnętrznego systemu równoważenia obciążenia HTTP(S)
Szkolenia i certyfikaty Google Cloud
…pomogą Ci wykorzystać wszystkie możliwości technologii Google Cloud. Nasze zajęcia obejmują umiejętności techniczne oraz sprawdzone metody, które ułatwią Ci szybką naukę i umożliwią jej kontynuację. Oferujemy szkolenia na poziomach od podstawowego po zaawansowany prowadzone w trybach wirtualnym, na żądanie i na żywo, dzięki czemu możesz dopasować program szkoleń do swojego napiętego harmonogramu. Certyfikaty umożliwią udokumentowanie i potwierdzenie Twoich umiejętności oraz doświadczenia w zakresie technologii Google Cloud.
Ostatnia aktualizacja instrukcji: 19 września 2023 r.
Ostatni test modułu: 19 września 2023 r.
Copyright 2024 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.