
Before you begin
- 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
Create a Kubernetes cluster and deployments (Auth, Hello, and Frontend)
/ 50
Canary Deployment
/ 50
Sprawdzone metody DevOps przewidują regularne używanie różnych wdrożeń do zarządzania scenariuszami wdrażania aplikacji, takimi jak ciągłe wdrażanie, wdrożenia metodą blue-green czy wdrożenia do wczesnych testów. W trakcie tego modułu nauczysz się skalować kontenery oraz zarządzać nimi, aby zrealizować typowe scenariusze, w których stosowane jest więcej niż 1 wdrożenie heterogeniczne.
W tym module dowiesz się, jak:
kubectl
;yaml
wdrożeń;Aby zmaksymalizować efekty nauki, przed rozpoczęciem tego modułu wykonaj następujące czynności:
Wdrożenia heterogeniczne zazwyczaj polegają na połączeniu 2 lub więcej odrębnych regionów lub środowisk infrastruktury, aby zaspokoić określone potrzeby techniczne lub operacyjne. W zależności od specyfiki danego wdrożenia określa się je nazwą „hybrydowe”, „wielochmurowe” lub „publiczno-prywatne”.
W tym module do wdrożeń heterogenicznych zaliczają się wdrożenia, które obejmują więcej niż 1 region w 1 środowisku chmury, 2 lub więcej środowisk w chmurze publicznej (wdrożenia wielochmurowe) oraz połączenie środowisk lokalnych i środowisk w chmurze publicznej (wdrożenia hybrydowe lub publiczno-prywatne).
W trakcie wdrożeń ograniczonych do 1 środowiska lub regionu mogą wystąpić różne problemy biznesowe i techniczne:
Wdrożenia heterogeniczne mogą pomóc rozwiązać te problemy, ale ich struktura musi zostać utworzona przy użyciu automatycznych i deterministycznych procesów oraz procedur. Zastosowanie jednorazowych lub doraźnych procedur może spowodować, że wdrożenia lub procesy będą niestabilne i podatne na awarie. Doraźne procesy mogą spowodować utratę danych lub odrzucenie ruchu. Dobre procesy wdrażania muszą być powtarzalne i wykorzystywać sprawdzone sposoby zarządzania udostępnianiem, konfiguracjami i konserwacją.
3 typowe scenariusze wdrożeń heterogenicznych to:
Ćwiczenia poniżej obejmują typowe zastosowania wdrożeń heterogenicznych wraz z dobrze zaprojektowanymi metodami wykorzystującymi Kubernetes oraz innymi zasobami infrastruktury do ich realizacji.
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ą:
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:
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.
W razie potrzeby skopiuj nazwę użytkownika znajdującą się poniżej i wklej ją w oknie logowania.
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.
Hasło znajdziesz też w panelu Szczegóły modułu.
Kliknij Dalej.
Na kolejnych stronach wykonaj następujące czynności:
Poczekaj, aż na karcie otworzy się konsola Google Cloud.
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.
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.
Kliknij Autoryzuj.
Dane wyjściowe powinny wyglądać tak:
Dane wyjściowe:
Dane wyjściowe:
Przykładowe dane wyjściowe:
gcloud
w Google Cloud znajdziesz w opisie narzędzia wiersza poleceń gcloud.
Aby ustawić roboczą strefę Google Cloud, uruchom to polecenie, podstawiając za zmienną
Na początek przyjrzyj się obiektowi wdrożenia.
explain
w kubectl
spowoduje wyświetlenie informacji o obiekcie wdrożenia:--recursive
:deployments/auth.yaml
:image
w sekcji kontenerów wdrożenia na:auth.yaml
: naciśnij <Esc>
i wpisz:<Enter>
. Następnie utwórz proste wdrożenie. Sprawdź plik konfiguracji wdrożenia:Dane wyjściowe:
Zwróć uwagę, że wdrożenie tworzy 1 replikę i korzysta z wersji 1.0.0 kontenera auth.
Kiedy uruchomisz polecenie kubectl create
, żeby utworzyć wdrożenie auth, zostanie utworzony 1 pod, który będzie zgodny z danymi w pliku manifestu wdrożenia. Oznacza to, że możesz dostosować liczbę podów, zmieniając liczbę podaną w polu replicas
.
kubectl create
:ReplicaSet
. Możesz sprawdzić, czy kontroler ReplicaSet
został na pewno utworzony dla wdrożenia:Powinien się wyświetlić kontroler ReplicaSet
z nazwą w formacie auth-xxxxxxx
ReplicaSet
Kubernetes utworzy pojedynczy pod:Czas utworzyć usługę do wdrożenia auth. Pliki manifestów już wyświetliliśmy, więc nie będziemy tutaj przedstawiać szczegółowych informacji.
kubectl create
:hello
:frontend
:ConfigMap
na potrzeby frontendu.Otrzymasz też wtedy odpowiedź na Hello.
kubectl
, żeby użyć polecenia curl jako 1 wiersza:Kliknij Sprawdź postępy poniżej, aby sprawdzić postęp pracy z modułem. Jeśli udało Ci się utworzyć klaster Kubernetes oraz wdrożenia auth, hello i frontend, wyświetli się odpowiedni wynik.
Po utworzeniu wdrożenia możesz je przeskalować. Żeby to zrobić, zaktualizuj pole spec.replicas
.
kubectl explain
:kubectl scale
:Po zaktualizowaniu wdrożenia Kubernetes automatycznie zaktualizuje powiązany kontroler ReplicaSet
i uruchomi nowe pody, tak żeby łączna liczba podów wynosiła 5.
hello
:Znasz już wdrożenia Kubernetes i sposoby zarządzania grupą podów oraz ich skalowania.
Wdrożenia obsługują aktualizacje obrazów do nowej wersji przy użyciu mechanizmu aktualizacji kroczącej. Gdy wdrożenie zostanie zaktualizowane do nowej wersji, utworzy nowy kontroler ReplicaSet
i powoli zwiększy liczbę replik w nowym kontrolerze ReplicaSet
, równocześnie zmniejszając liczbę replik w starym kontrolerze ReplicaSet
.
image
w sekcji kontenerów wdrożenia na:Zaktualizowane wdrożenie zostanie zapisane w klastrze, a Kubernetes rozpocznie aktualizację kroczącą.
ReplicaSet
utworzony przez Kubernetes:Jeśli wykryjesz problemy z wdrażaniem kroczącym, wstrzymaj je, żeby zatrzymać aktualizację.
Wdrażanie jest wstrzymane, co oznacza, że niektóre pody mają nową wersję, a inne starą.
resume
:status
, powinien się wyświetlić tekst poniżej:Dane wyjściowe:
Załóżmy, że w nowej wersji wykryto błąd. Możemy uznać, że problemy są związane z nową wersją, więc doświadczą ich wszyscy użytkownicy podłączeni do nowych podów.
Trzeba będzie przywrócić poprzednią wersję, żeby zbadać sprawę, i następnie opublikować naprawioną wersję.
rollout
:Świetnie! Wiesz już, jak przeprowadzić aktualizację kroczącą wdrożeń Kubernetes oraz jak aktualizować aplikacje bez przestojów.
Przy pomocy wdrożenia do wczesnych testów możesz przetestować nowe wdrożenie w środowisku produkcyjnym z częścią użytkowników. Wdrożenia do wczesnych testów umożliwiają opublikowanie zmiany tylko dla niewielkiej części użytkowników, co pozwala ograniczyć ryzyko związane z nowymi wersjami.
Wdrożenie do wczesnych testów składa się z odrębnego wdrożenia z nową wersją oraz usługi, która jest używana na potrzeby zarówno normalnego, stabilnego wdrożenia, jak i wdrożenia do wczesnych testów.
Dane wyjściowe:
hello
oraz hello-canary
. Sprawdź, czy tak na pewno jest, przy pomocy polecenia kubectl
:W usłudze hello
selektor app:hello
dopasuje pody zarówno we wdrożeniu w środowisku produkcyjnym, jak i we wdrożeniu do wczesnych testów. Wdrożenie do wczesnych testów będzie jednak widoczne dla mniejszej liczby użytkowników, bo ma mniej podów.
hello
obsługiwaną przez żądanie:Kliknij Sprawdź postępy poniżej, aby sprawdzić postęp pracy z modułem. Jeśli udało Ci się utworzyć wdrożenie do wczesnych testów, wyświetli się odpowiedni wynik.
W tym module żądanie wysłane do usługi Nginx mogło zostać wyświetlone przez wdrożenie do wczesnych testów. Co należy jednak zrobić, jeśli nie chcesz, aby konkretny użytkownik był obsługiwany przez wdrożenie do wczesnych testów? Może się to przydać na przykład, kiedy interfejs aplikacji uległ zmianie i nie chcesz zdezorientować tego użytkownika. W takiej sytuacji najlepiej będzie, żeby korzystał tylko z 1 z wdrożeń.
W tym celu należy utworzyć usługę z koligacją sesji. Dzięki temu dany użytkownik będzie zawsze obsługiwany przez tę samą wersję. W przykładzie poniżej usługa jest taka sama jak wcześniej, ale dodano nowe pole sessionAffinity
, w którym ustawiona jest wartość ClientIP
. Żądania ze wszystkich klientów o tym samym adresie IP będą wysyłane do tej samej wersji aplikacji hello
.
Skonfigurowanie środowiska, w którym można to przetestować, nie jest łatwe, więc nie musisz tego teraz robić, ale zalecamy stosować sessionAffinity
we wdrożeniach do wczesnych testów w środowisku produkcyjnym.
Aktualizacje kroczące są idealnym rozwiązaniem, ponieważ umożliwiają powolne wdrożenie aplikacji z minimalnym wpływem na wydajność, narzutem i czasem przestoju. W niektórych przypadkach korzystne jest zmodyfikowanie systemów równoważenia obciążenia tak, aby kierowały do nowej wersji dopiero po jej pełnym wdrożeniu. W takich sytuacjach najlepszym rozwiązaniem są wdrożenia metodą blue-green.
W tym celu Kubernetes tworzy 2 oddzielne wdrożenia; jedno dla starej wersji „niebieskiej” i jedno dla nowej wersji „zielonej”. Użyj już utworzonego wdrożenia hello
na potrzeby wersji „niebieskiej”. Dostęp do wdrożeń będzie można uzyskać przy pomocy usługi, która będzie pełnić funkcję routera. Kiedy nowa wersja „zielona” zostanie uruchomiona, zaczniesz z niej korzystać po zaktualizowaniu usługi.
Zastosuj istniejącą usługę hello, ale zaktualizuj ją tak, żeby zawierała selektor app:hello
, version: 1.0.0
. Ten selektor dopasuje istniejące wdrożenie „niebieskie”, ale nie „zielone”, ponieważ będzie ono używać innej wersji.
resource service/hello is missing
(brak zasobu usługi/hello) – zostanie to automatycznie poprawione.Żeby zapewnić obsługę stylu wdrożenia metodą blue-green, należy utworzyć nowe wdrożenie „zielone” dla nowej wersji. Zaktualizuje ono etykietę wersji oraz ścieżkę obrazu.
W razie potrzeby w ten sam sposób możesz przywrócić starą wersję.
Udało się! Znasz już wdrożenia metodą blue-green oraz wiesz, jak wdrażać aktualizacje w aplikacjach, które muszą zmieniać wersje jednocześnie.
Ten moduł dał Ci możliwość przećwiczenia uruchamiania, aktualizowania i skalowania wdrożeń przy użyciu narzędzia wiersza poleceń kubectl
oraz różnych stylów konfiguracji wdrożeń skonfigurowanych w plikach YAML. Dzięki zdobytemu w ten sposób praktycznemu doświadczeniu możesz czuć się pewnie, kiedy będziesz stosować te umiejętności w trakcie własnej pracy z DevOps.
Rozwiązania i poradniki dotyczące DevOps w dokumentacji Google Cloud.
Dołącz do społeczności na stronie Kubernetes.
…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: 2 kwietnia 2024 r.
Ostatni test modułu: 14 sierpnia 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.
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