Wczytuję…
Nie znaleziono wyników.

Wykorzystuj swoje umiejętności w konsoli Google Cloud

DevOps Essentials

Zyskaj dostęp do ponad 700 modułów i kursów

Wdrażanie usługi systemu równoważenia obciążenia Kubernetes za pomocą Terraform

Moduł 35 godz. universal_currency_alt Punkty: 5 show_chart Średnio zaawansowane
info Ten moduł może zawierać narzędzia AI, które ułatwią Ci naukę.
Zyskaj dostęp do ponad 700 modułów i kursów

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

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

  4. Kliknij Dalej.

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

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

  1. Kliknij Aktywuj Cloud Shell  na górze konsoli Google Cloud.

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

  1. (Opcjonalnie) Aby wyświetlić listę aktywnych kont, użyj tego polecenia:
gcloud auth list
  1. Kliknij Autoryzuj.

Dane wyjściowe:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (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. Usługi są „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. Klonowanie przykładowego kodu

  1. W Cloud Shell zacznij od sklonowania przykładowego kodu:
gsutil -m cp -r gs://spls/gsp233/* .
  1. Przejdź do katalogu tf-gke-k8s-service-lb:
cd tf-gke-k8s-service-lb

Zadanie 2. Zrozumienie kodu

  1. 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, zonenetwork_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.
  1. Zapoznaj się z zawartością pliku k8s.tf:
cat k8s.tf

Przykładowe dane wyjściowe:

provider "kubernetes" { version = "~> 1.10.0" host = google_container_cluster.default.endpoint token = data.google_client_config.current.access_token client_certificate = base64decode( google_container_cluster.default.master_auth[0].client_certificate, ) client_key = base64decode(google_container_cluster.default.master_auth[0].client_key) cluster_ca_certificate = base64decode( google_container_cluster.default.master_auth[0].cluster_ca_certificate, ) } resource "kubernetes_namespace" "staging" { metadata { name = "staging" } } resource "google_compute_address" "default" { name = var.network_name region = var.region } resource "kubernetes_service" "nginx" { metadata { namespace = kubernetes_namespace.staging.metadata[0].name name = "nginx" } spec { selector = { run = "nginx" } session_affinity = "ClientIP" port { protocol = "TCP" port = 80 target_port = 80 } type = "LoadBalancer" load_balancer_ip = google_compute_address.default.address } } resource "kubernetes_replication_controller" "nginx" { metadata { name = "nginx" namespace = kubernetes_namespace.staging.metadata[0].name labels = { run = "nginx" } } spec { selector = { run = "nginx" } template { container { image = "nginx:latest" name = "nginx" resources { limits { cpu = "0.5" memory = "512Mi" } requests { cpu = "250m" memory = "50Mi" } } } } } } output "load-balancer-ip" { value = google_compute_address.default.address }
  • 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:

  1. 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.
  1. 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" }}}"
  1. Sprawdź działania Terraform i zasoby, które zostaną utworzone.

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

Apply complete! Resources: 7 added, 0 changed, 0 destroyed. Outputs: cluster_name = tf-gke-k8s cluster_region = "{{{project_0.default_region|REGION}}}" cluster_zone = "{{{project_0.default_region|ZONE}}}" load-balancer-ip = 35.233.177.223 network = https://www.googleapis.com/compute/beta/projects/qwiklabs-gcp-5438ad3a5e852e4a/global/networks/tf-gke-k8s subnetwork_name = tf-gke-k8s

Sprawdzanie zasobów utworzonych przez Terraform

  1. W konsoli otwórz Menu nawigacyjne > Kubernetes Engine.
  2. Kliknij klaster tf-gke-k8s i sprawdź jego konfigurację.
  3. W panelu po lewej stronie kliknij Bramy, usługi i ruch przychodzący, a potem sprawdź stan usługi nginx.
  4. Kliknij adres IP Punktów końcowych, 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ę za pomocą Terraform, wyświetli się wynik.

Wdrożenie infrastruktury za pomocą 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 Zarządzanie infrastrukturą Google Cloud za pomocą TerraformDevOps – podstawowe informacje. 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 Oparty na treści HTTPS system równoważenia obciążenia z 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: 1 kwietnia 2024 r.

Ostatni test modułu: 1 kwietnia 2024 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.

Wstecz Dalej

Zanim zaczniesz

  1. Moduły tworzą projekt Google Cloud i zasoby na określony czas.
  2. Moduły mają ograniczenie czasowe i nie mają funkcji wstrzymywania. Jeśli zakończysz moduł, musisz go zacząć od początku.
  3. Aby rozpocząć, w lewym górnym rogu ekranu kliknij Rozpocznij moduł.

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

Jeden moduł, a potem drugi

Potwierdź, aby zakończyć wszystkie istniejące moduły i rozpocząć ten

Aby uruchomić moduł, użyj przeglądania prywatnego

Uruchom ten moduł w oknie incognito 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.
Podgląd