Punkty kontrolne
Deploy infrastructure with Terraform
/ 100
Wdrażanie usługi systemu równoważenia obciążenia Kubernetes za pomocą Terraform
GSP233
Opis
Dostawca w Terraform stanowi logiczną abstrakcję docelowego interfejsu API. W tym module nauczysz się, jak skonfigurować klaster Kubernetes i wdrożyć w nim usługę NGINX typu system równoważenia obciążenia.
Cele
W tym module nauczysz się, jak:
- wdrożyć klaster Kubernetes wraz z usługą za pomocą Terraform.
Wymagania wstępne
Przed rozpoczęciem tego modułu trzeba mieć doświadczenie w tych obszarach:
- znajomość usług Kubernetes,
- znajomość interfejsu wiersza poleceń
kubectl
.
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;
- 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. 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 z panelu Szczegóły modułu i wklej ją w oknie logowania. Kliknij Dalej.
-
Skopiuj hasło z panelu Szczegóły modułu i wklej je w oknie powitania. Kliknij Dalej.
Ważne: musisz użyć danych logowania z panelu po lewej stronie, a nie danych logowania Google Cloud Skills Boost. 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.
Usługi Kubernetes
Usługa to grupa podów działających w klastrze. Są one „tanie” i możesz ich mieć wiele w jednym klastrze. Usługi Kubernetes mogą wydajnie obsługiwać architekturę mikroserwisu.
Usługi zapewniają ważne funkcje, które są ustandaryzowane w całym klastrze: równoważenie obciążenia, wykrywanie usług między aplikacjami oraz funkcje wspierające wdrożenia aplikacji bez przestojów.
Każda usługa ma zapytanie o etykietę poda definiującą pody, które będą przetwarzać dane na potrzeby tej usługi. To zapytanie o etykietę często pasuje do podów utworzonych przez jeden lub więcej kontrolerów replikacji. Dodanie za pomocą Kubernetes API programów używanych do wdrażania do zapytania o etykietę usługi pozwala na stosowanie rozbudowanych scenariuszy routingu.
Dlaczego warto wybrać Terraform?
Do zarządzania wszystkimi zasobami Kubernetes opisanymi w plikach YAML możesz wykorzystać kubectl
lub podobne narzędzia oparte na interfejsie wiersza poleceń zmapowane na wywołania interfejsu API. Jednak administracja za pomocą Terraform ma kilka korzyści:
- Jeden język – możesz używać tego samego języka konfiguracji do udostępniania infrastruktury Kubernetes i wdrażania w niej aplikacji.
-
Wykrywanie dryfu –
terraform plan
zawsze będzie przedstawiać różnice między stanem rzeczywistym w danym momencie a konfiguracją, którą zamierzasz zastosować. - Zarządzanie całym cyklem życia – Terraform nie tylko początkowo tworzy zasoby, ale oferuje 1 polecenie do tworzenia, aktualizowania i usuwania śledzonych zasobów bez konieczności sprawdzania interfejsu API w celu identyfikacji tych zasobów.
- Synchroniczne informacje zwrotne – chociaż zachowanie asynchroniczne jest często przydatne, czasami przynosi efekt przeciwny do zamierzonego, ponieważ zadanie identyfikacji wyników operacji (niepowodzeń lub szczegółów utworzonego zasobu) musi wykonać użytkownik. Na przykład nie dysponujesz adresem IP / nazwą hosta systemu równoważenia obciążenia, dopóki nie zostanie on udostępniony, dlatego nie możesz utworzyć żadnego rekordu DNS wskazującego na ten system.
- Wykres relacji – Terraform rozumie relacje między zasobami, co może pomóc w planowaniu. Terraform nie będzie np. próbować utworzyć usługi w klastrze Kubernetes, dopóki klaster nie będzie istniał.
Zadanie 1. Kopiowanie przykładowego kodu
- W Cloud Shell zacznij od sklonowania przykładowego kodu:
- Przejdź do katalogu
tf-gke-k8s-service-lb
:
Zadanie 2. Zrozumienie kodu
- Zapoznaj się z zawartością pliku
main.tf
:
Przykładowe dane wyjściowe:
- Zmienne
region
,zone
inetwork_name
są zdefiniowane. Zostaną one wykorzystane do utworzenia klastra Kubernetes. - Dostawca Google Cloud pozwoli nam utworzyć zasoby w tym projekcie.
- Zdefiniowanych jest kilka zasobów, które posłużą do utworzenia odpowiedniej sieci i klastra.
- Na końcu znajdują się dane wyjściowe, które wyświetlą się po uruchomieniu polecenia
terraform apply
.
- Zapoznaj się z zawartością pliku
k8s.tf
:
Przykładowe dane wyjściowe:
- Ten skrypt konfiguruje dostawcę Kubernetes z Terraform i tworzy usługę, przestrzeń nazw i zasób replication_controller.
- Jako dane wyjściowe zwraca adres IP usługi
nginx
.
Zadanie 3. Inicjowanie i instalowanie zależności
Polecenie terraform init
służy do zainicjowania katalogu roboczego zawierającego pliki konfiguracji Terraform.
To polecenie wykonuje kilka różnych kroków inicjujących, aby przygotować katalog roboczy do użycia. Zawsze można je bezpiecznie uruchomić wiele razy, aby zaktualizować katalog roboczy o zmiany w konfiguracji:
- Uruchom
terraform init
:
Przykładowe dane wyjściowe:
- Uruchom polecenie
terraform apply
, które jest używane do zastosowania zmian wymaganych do osiągnięcia pożądanego stanu konfiguracji:
-
Sprawdź działania Terraform i zasoby, które zostaną utworzone.
-
Gdy wszystko będzie gotowe, wpisz yes, aby rozpocząć działania Terraform.
Po zakończeniu powinny pojawić się podobne dane wyjściowe:
Przykładowe dane wyjściowe:
Sprawdzanie zasobów utworzonych przez Terraform
- W konsoli otwórz Menu nawigacyjne > Kubernetes Engine.
- Kliknij klaster
tf-gke-k8s
i sprawdź jego konfigurację. - W panelu po lewej stronie kliknij Usługi i ruch przychodzący, a potem sprawdź stan usługi
nginx
. - Kliknij adres IP Punkty końcowe, aby otworzyć stronę
Welcome to nginx!
w nowej karcie przeglądarki.
Kliknij Sprawdź postępy, aby zobaczyć stan realizacji zadania. Jeśli udało Ci się wdrożyć infrastrukturę z Terraform, wyświetli się wynik.
Gratulacje!
W tym module udało Ci się wykorzystać Terraform do zainicjowania, zaplanowania i wdrożenia klastra Kubernetes wraz z usługą.
Ukończ kurs
Ten moduł do samodzielnego ukończenia jest częścią kursów Managing Cloud Infrastructure with Terraform i DevOps 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. Zarejestruj się na dowolny kurs zawierający ten moduł, a zostanie on automatycznie zaliczony. Wszystkie dostępne kursy znajdziesz w katalogu Google Cloud Skills Boost.
Przejdź do kolejnego modułu
Możesz uczyć się dalej w ramach modułu HTTPS Content-Based Load balancer with Terraform lub sprawdzić inne propozycje:
Kolejne kroki / Więcej informacji
Przekonaj się, jak inni pracują z Terraform, w społeczności.
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: 28 września 2023 r.
Ostatni test modułu: 28 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.