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).
Uwaga: uruchom ten moduł w oknie incognito (zalecane) lub przeglądania prywatnego. Dzięki temu unikniesz konfliktu między swoim kontem osobistym a kontem do nauki, co mogłoby spowodować naliczanie dodatkowych opłat na koncie osobistym.
Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
Uwaga: w tym module używaj tylko konta do nauki. Jeśli użyjesz innego konta Google Cloud, mogą na nim zostać naliczone opłaty.
Rozpoczynanie modułu i logowanie się w konsoli Google Cloud
Kliknij przycisk Rozpocznij moduł. Jeśli moduł jest odpłatny, otworzy się okno, 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.
Uwaga: aby uzyskać dostęp do produktów i usług Google Cloud, kliknij Menu nawigacyjne lub wpisz nazwę usługi albo produktu w polu Szukaj.
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.
Kliknij te okna:
Przejdź przez okno z informacjami o Cloud Shell.
Zezwól Cloud Shell na używanie Twoich danych logowania w celu wywoływania interfejsu Google Cloud API.
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:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
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:
gcloud auth list
Kliknij Autoryzuj.
Dane wyjściowe:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
(Opcjonalnie) Aby wyświetlić identyfikator projektu, użyj tego polecenia:
gcloud config list project
Dane wyjściowe:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Uwaga: pełną dokumentację gcloud w Google Cloud znajdziesz w opisie gcloud CLI.
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:
gsutil -m cp -r gs://spls/gsp233/* .
Przejdź do katalogu tf-gke-k8s-service-lb:
cd tf-gke-k8s-service-lb
Zadanie 2. Zrozumienie kodu
Zapoznaj się z zawartością pliku main.tf:
cat main.tf
Przykładowe dane wyjściowe:
...
variable "region" {
type = string
description = "Region for the resource."
}
variable "location" {
type = string
description = "Location represents region/zone for the resource."
}
variable "network_name" {
default = "tf-gke-k8s"
}
provider "google" {
region = var.region
}
resource "google_compute_network" "default" {
name = var.network_name
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "default" {
name = var.network_name
ip_cidr_range = "10.127.0.0/20"
network = google_compute_network.default.self_link
region = var.region
private_ip_google_access = true
}
...
Zmienne region, zone i network_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.
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:
terraform init
Przykładowe dane wyjściowe:
...
* provider.google: version = "~> 3.8.0"
* provider.kubernetes: version = "~> 1.10.0"
Terraform has been successfully initialized!
You may now begin working with Terraform. Try running `terraform plan` to see
any changes that are required for your infrastructure. All Terraform commands
should now work.
If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
Uruchom polecenie terraform apply, które jest używane do zastosowania zmian wymaganych do osiągnięcia pożądanego stanu konfiguracji:
terraform apply -var="region={{{ project_0.default_region | "Region to be allocated" }}}" -var="location={{{ project_0.default_zone | "Zone to be allocated" }}}"
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:
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.
Wdrożenie infrastruktury z Terraform
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.
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 2025 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.
Labs create a Google Cloud project and resources for a fixed time
Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
On the top left of your screen, click Start lab to begin
Use private browsing
Copy the provided Username and Password for the lab
Click Open console in private mode
Sign in to the Console
Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
Accept the terms, and skip the recovery resource page
Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project
Ta treść jest obecnie niedostępna
Kiedy dostępność się zmieni, wyślemy Ci e-maila z powiadomieniem
Świetnie
Kiedy dostępność się zmieni, skontaktujemy się z Tobą e-mailem
One lab at a time
Confirm to end all existing labs and start this one
Use private browsing to run the lab
Use an Incognito or private browser window to run this lab. This
prevents any conflicts between your personal account and the Student
account, which may cause extra charges incurred to your personal account.
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.
Czas trwania:
Konfiguracja: 0 min
·
Dostęp na 35 min
·
Ukończono w 35 min