Wczytuję…
Nie znaleziono wyników.

    Google Cloud Skills Boost

    Apply your skills in Google Cloud console

    DevOps Essentials

    Get access to 700+ labs and courses

    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ę.
    Get access to 700+ labs and courses

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

    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 Usługi i ruch przychodzący, a potem sprawdź stan usługi nginx.
    4. 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 TerraformDevOps 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 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

    Before you begin

    1. Labs create a Google Cloud project and resources for a fixed time
    2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
    3. On the top left of your screen, click Start lab to begin

    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.
    Podgląd