1. Wprowadzenie

Last Updated: 2026-05-13
Zbadaj awarię GKE za pomocą rozszerzenia SRE i utwórz szczegółowy raport poawaryjny
Witamy na warsztatach SRE dla operatorów, którzy chcą eksperymentować z narzędziami SRE w Google Cloud.
W tym ćwiczeniu dowiesz się, jak to zrobić:
- Zainstaluj klaster GKE na podstawie znanego projektu open source microservices-demo.
- Wywołaj przerwę w działaniu, przerywając ją na różne sposoby (niektóre bardziej uderzające, inne bardziej subtelne).
- Zainstaluj i użyj interfejsu Antigravity CLI (lub podobnego narzędzia) oraz rozszerzenia SRE w dalszej części.
- Sprawdź i spróbuj usunąć przyczynę awarii.
- Utwórz analizę po fakcie.
- Użyj umiejętności tworzenia wykresów, aby wygenerować wykres z uzasadnieniem, który pozwoli widzom zrozumieć, co się wydarzyło i kiedy.
Ćwiczenia z programowania są podzielone na te sekcje:

Celem tych warsztatów jest:
- zaprezentować możliwości rozszerzenia SRE i pokazać, co można dzięki niemu zrobić: konfiguracja OneMCP, Safe Executor, dochodzenie, generowanie raportów po awarii, wykresy i wyciągi z plików CSV.
- nauczyć Cię umiejętności potrzebnych do zbadania własnego scenariusza Google Cloud;
Kamień milowy 1. Konfiguracja środowiska i symulacja awarii
Celem tego etapu jest skonfigurowanie przykładowej aplikacji Kubernetes w GKE Autopilot, zainstalowanie Antigravity CLI i sztuczne wywoływanie scenariuszy awarii klastra GKE w celu symulowania incydentów w środowisku produkcyjnym.
Etap 2. Analiza i ograniczanie zagrożeń za pomocą rozszerzenia SRE
Po uszkodzeniu środowiska użyjesz narzędzi CLI opartych na agentach wyposażonych w rozszerzenie SRE, aby systematycznie odkrywać infrastrukturę, klasyfikować problemy, wdrażać bezpieczny wzorzec wykonywania poprawek i weryfikować stan klastra.
Milestone 3: Post Mortem and Graph Generation
Po rozwiązaniu problemu wygenerujesz dokument podsumowujący incydent w formie strukturalnej i użyjesz interfejsów GCM (Google Cloud Monitoring) API, aby pobrać rzeczywiste dane dotyczące pomiarów. Następnie utworzysz wykresy wizualne, aby udokumentować, kiedy i jak doszło do awarii.
Co utworzysz
W tym ćwiczeniu dowiesz się, jak badać i naprawiać awarie GKE za pomocą rozszerzenia SRE. W ramach ćwiczenia:
- Symulowanie awarii GKE za pomocą blokowania zasad sieciowych, wadliwych wdrożeń kanarkowych i aktualizacji reguł zapory sieciowej.
- Przeprowadź wstępną analizę awarii klastra za pomocą asystenta interfejsu wiersza poleceń opartego na rozszerzeniu SRE.
- Bezpiecznie wdrażaj działania naprawcze za pomocą wzorca Safe Executor.
- Wygeneruj obszerny dokument po zakończeniu projektu.
- Wyświetlanie wskaźników incydentów na wykresie za pomocą zapytań dotyczących szeregów czasowych Google Cloud Monitoring.
Czego się nauczysz
- Jak sprawdzać zasoby i zasady Kubernetes w GKE za pomocą umiejętności związanych z rozszerzeniem SRE.
- Jak korzystać z wzorca bezpiecznego wykonawcy, aby uruchamiać polecenia sugerowane przez agenta z odpowiednią oceną ryzyka.
- Jak używać umiejętności
monitoring-graphsdo generowania wykresów wskaźników powiązanych ze źródłami informacji bezpośrednio z GCM. - Jak dokumentować wyniki incydentów w uporządkowanym formacie analizy po incydencie.
Czego potrzebujesz
- Projekt Google Cloud z włączonymi płatnościami.
- Narzędzia wiersza poleceń:
gcloud,kubectl,terraform. - Antigravity CLI zainstalowany lokalnie lub w Cloud Shell.
- IDE (np. vscode, IntelliJ, RubyMine lub Vim).
Dlaczego warto korzystać z rozszerzenia SRE i interfejsu wiersza poleceń Agentic?
Awarie produkcyjne są dynamiczne i wymagają korelacji w wielu podsystemach (zasoby Kubernetes, sieci VPC, dane Cloud Monitoring, uprawnienia IAM). Rozszerzenie SRE umożliwia pomocniczym interfejsom wiersza poleceń opartym na agentach (takim jak interfejs wiersza poleceń Antigravity) działanie jako autonomiczne narzędzia wspomagające, które wykonują wstępnie skompilowane podręczniki, wysyłają zapytania do wykresów monitorowania i sugerują bezpieczne rozwiązania, jednocześnie informując operatora.
2. Przygotowania
Wybierz jedną z tych opcji: Self-paced environment setup (Konfiguracja środowiska we własnym tempie), jeśli chcesz uruchomić to
codelab na własnym komputerze lub uruchom Cloud Shell, jeśli chcesz przeprowadzić ten codelab w całości w chmurze.
Samodzielne konfigurowanie środowiska
- Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail lub Google Workspace, musisz je utworzyć.



- Nazwa projektu to wyświetlana nazwa dla uczestników tego projektu. Jest to ciąg znaków, który nie jest używany przez interfejsy API Google. Zawsze możesz ją zaktualizować.
- Identyfikator projektu jest unikalny we wszystkich projektach Google Cloud i nie można go zmienić po ustawieniu. Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie musisz się tym przejmować. W większości ćwiczeń z programowania musisz odwoływać się do identyfikatora projektu (zwykle oznaczanego jako
PROJECT_ID). Jeśli wygenerowany identyfikator Ci się nie podoba, możesz wygenerować inny losowy identyfikator. Możesz też spróbować własnej nazwy i sprawdzić, czy jest dostępna. Po tym kroku nie można go zmienić i pozostaje on taki przez cały czas trwania projektu. - Warto wiedzieć, że istnieje też trzecia wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
- Następnie musisz włączyć płatności w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Wykonanie tego laboratorium nie będzie kosztować dużo, a może nawet nic. Aby wyłączyć zasoby i uniknąć naliczania opłat po zakończeniu tego samouczka, możesz usunąć utworzone zasoby lub projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.
Uruchamianie Cloud Shell
Z Google Cloud można korzystać zdalnie na laptopie, ale w tym ćwiczeniu użyjesz Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.
W konsoli Google Cloud kliknij ikonę Cloud Shell na pasku narzędzi w prawym górnym rogu:

Uzyskanie dostępu do środowiska i połączenie się z nim powinno zająć tylko kilka chwil. Po zakończeniu powinno wyświetlić się coś takiego:

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera również stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i usprawnia proces uwierzytelniania. Wszystkie zadania w tym laboratorium możesz wykonać w przeglądarce. Nie musisz niczego instalować.
3. Wymagania wstępne (instalacja)
W tym samouczku musisz zainstalować:
1. Python i uv
python i uv (menedżer pakietów dla Pythona). Sprawdź, czy masz zainstalowany pakiet uv:
$ curl -LsSf https://astral.sh/uv/install.sh | sh
Dlaczego uv? Możesz używać dowolnego menedżera Pythona, ale użycie uv zapewni, że konfiguracja ENV/PATH dla Pythona będzie taka sama dla Ciebie i interfejsu wiersza poleceń Antigravity, więc środowisko powłoki będzie w większości takie samo jak w przypadku interfejsu wiersza poleceń Antigravity. Jeśli na przykład używasz virtualenv , Antigravity CLI będzie musiał wykonać czynności takie jak „source .env/venv/bin/activate && my-original-command”, aby naśladować Twoje środowisko.
2. Antigravity CLI (agy)
Aby zainstalować oficjalny Antigravity CLI (polecenie agy), otwórz terminal i uruchom instalator początkowy:
W systemach macOS i Linux:
$ curl -fsSL https://antigravity.google/cli/install.sh | bash
W systemie Windows (PowerShell):
irm https://antigravity.google/cli/install.ps1 | iex
Ten skrypt dynamicznie wykryje Twój system operacyjny i architekturę, a następnie pobierze najnowszą skompilowaną wersję
agy
plik binarny i skonfiguruj zmienną PATH. Aby zmiany zaczęły obowiązywać, uruchom ponownie terminal lub załaduj ponownie konfigurację powłoki.

Uwierzytelnianie
Musisz mieć klucz interfejsu API Google AI Studio.
Wyeksportuj klucz interfejsu API:
export GEMINI_API_KEY="your-api-key"
Uwierzytelnij się za pomocą gcloud:
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"
gcloud auth application-default login
Konfigurowanie środowiska pracy i wdrażanie aplikacji demonstracyjnej mikroserwisów
Sklonujmy aplikację microservices-demo i wdróżmy infrastrukturę oraz aplikację za pomocą Terraform.
W tym momencie możesz otworzyć IDE (Visual Studio Code, IntelliJ, RubyMine itp.) i otworzyć folder.
# 1. Find an empty directory, and download this repo.
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
cd microservices-demo/terraform
# 2. Update project ID to your gcloud project ID
sed -i 's/<project_id_here>/YOUR_ACTUAL_PROJECT_ID/g' terraform.tfvars
# 3. Deploy the microservices-demo application in GKE autopilot
# If there is a prompt answer yes and continue. This step can take up to 10 mins for provision gke autopilot cluster and deploy microservices-demo application
terraform init
terraform plan
terraform apply
# 4. Verify the IP address of frontend-service to access the online-boutique application
kubectl get service frontend-external | awk '{print $4}'
# 5. Find an empty directory , and download this repo.
git clone https://github.com/palladius/sre-testing-suite.git
cd sre-testing-suite/test-scenarios/microservices-demo-gke/breakage-scenarios
Aby przetestować konfigurację, możesz otworzyć adres http://[IP ADDRESS] i wczytać aplikację online-boutique.
Konfigurowanie środowiska pracy na potrzeby sre-antigravity-cli-extension
# 1. Install the SRE Extension plugin globally
git clone https://github.com/gemini-cli-extensions/sre.git ~/.gemini/config/plugins/sre-extension
# 2. Launch the Antigravity CLI (agy)
agy # This runs the CLI under your current breakage-scenarios folder.
# Login with your corporate or personal account when prompted.
# 3. Within the agy agent prompt, configure your MCP servers and GCP project
Use the gcp-mcp-setup skill to setup my GCP project "<gcp_project_id>" with email jane-doe-sre@credible-company.com
4. Krok 1. Symulacja awarii (scenariusze awarii)
W tym kroku celowo uszkodzimy wdrożony klaster GKE, aby zasymulować rzeczywiste zdarzenie produkcyjne. Masz do wyboru 3 scenariusze (możesz też wypróbować je wszystkie po kolei):
Scenariusz 1. Blokada sieci usługi płatności (standardowa/autopilot)
Ten scenariusz symuluje zerwane połączenie między interfejsem a usługą płatności przez zastosowanie Kubernetes NetworkPolicy, który działa jak „czarna dziura” dla ruchu.
- Przejdź do folderu scenariusza:
cd breakage1-checkout
- Wywołaj uszkodzenie:
Tworzy to zasadę sieciową o nazwie./break.sh
update-checkout-from-frontendw przestrzeni nazwdefault, która odrzuca ruch przychodzący docheckoutservice, chyba że pochodzi on z poda z etykietąapp: frontend-checkout-test(która nie istnieje). - Spróbuj kupić produkty w interfejsie Online Boutique. Strona płatności zawiesi się lub wyświetli błąd HTTP 500.
Scenariusz 2. Wprowadzenie wersji kanaryjskiej z błędami (autopilot z Istio)
Ten scenariusz symuluje nieprawidłowe wdrożenie, w którym wadliwa wersja frontendu jest wdrażana za pomocą wdrożenia do wczesnych testów Kubernetes.
- Przejdź do folderu scenariusza:
cd ../breakage2-canary
- Wywołaj uszkodzenie:
Wdraża to wdrożenie do wczesnych testów./break.sh
frontend-canary, które zawiera błąd w zmiennych środowiskowych:PRODUCT_CATALOG_SERVICE_ADDRjest skonfigurowane naproductcatalogservices:3550zamiastproductcatalogservice:3550. - Załaduj stronę główną interfejsu. Czasami może się to nie udać (w zależności od wag routingu), ponieważ usługa testowa nie może rozpoznać katalogu produktów.
Scenariusz 3. Blokada klastra zapory sieciowej VPC
Ten scenariusz symuluje błąd w konfiguracji zapory sieciowej VPC, który blokuje cały ruch przychodzący do klastra GKE.
- Przejdź do folderu scenariusza:
cd ../breakage3-firewall
- Wywołaj uszkodzenie:
Spowoduje to utworzenie reguły zapory sieciowej na poziomie VPC o nazwie./break.sh
frontend-ingress-v2z wartościamipriority=1i działaniemDENY, która będzie dotyczyć ruchu przychodzącego do portów80,443i8080. - Witryna Online Boutique stanie się całkowicie niedostępna, a żądania będą przekraczać limit czasu.
5. Krok 2. Badanie awarii za pomocą rozszerzenia SRE
Aplikacja nie działa, więc zacznijmy sprawdzanie za pomocą asystenta CLI (Antigravity CLI).
- Wróć do głównego folderu ze scenariuszami przerwania i uruchom narzędzie CLI:
cd .. agy
- Poproś asystenta o przeprowadzenie wykrywania infrastruktury i sprawdzenia diagnostycznego:
Investigate my GKE cluster for outages. Are all services healthy? - Co robi agent:
- Włącza to umiejętności
investigation-entrypointigcp-playbooks. - Zawiera listę podów, wdrożeń i usług Kubernetes, aby zlokalizować nieprawidłowe cele.
- Sprawdza zasady sieciowe (w scenariuszu 1), konfiguracje wdrożenia (w scenariuszu 2) lub reguły zapory sieciowej (w scenariuszu 3).
- Włącza to umiejętności
- W scenariuszu 1 agent powinien zgłosić: 🔴 Zidentyfikowano incydent:
NetworkPolicyo nazwieupdate-checkout-from-frontendizoluje podycheckoutservice. - W przypadku scenariusza 2 pracownik obsługi klienta powinien zgłosić: 🔴 Zidentyfikowano incydent: wdrożenie
frontend-canaryjest skonfigurowane z nieprawidłowym punktem końcowym usługiproductcatalogservices:3550zamiastproductcatalogservice:3550. - W scenariuszu 3 pracownik obsługi klienta powinien zgłosić: 🔴 Zidentyfikowano incydent: reguła zapory sieciowej VPC
frontend-ingress-v2odrzuca ruch przychodzący na portach80,443i8080.
6. Krok 3. Ograniczanie skutków awarii i jej usuwanie
Aby usunąć awarię, użyjmy wzorca bezpiecznego wykonawcy interfejsu CLI.
- Poproś asystenta interfejsu wiersza poleceń o zaproponowanie i zastosowanie poprawki:
Propose a fix for the outage and apply it. - Safe Executor w działaniu:
- Przed wykonaniem sugerowanych poleceń rozszerzenie SRE przeprowadza kontrolę bezpieczeństwa za pomocą funkcji
safe-sre-investigator. - Wyświetli dokładne polecenie, które zamierza uruchomić, i oceni ryzyko (np. niskie, średnie, wysokie).
- W przypadku scenariusza 1 zaproponuje:
kubectl delete networkpolicy update-checkout-from-frontend
- W przypadku scenariusza 2 zaproponuje:
kubectl delete deployment frontend-canary
- W przypadku scenariusza 3 zaproponuje:
gcloud compute firewall-rules delete frontend-ingress-v2 --quiet
- Przed wykonaniem sugerowanych poleceń rozszerzenie SRE przeprowadza kontrolę bezpieczeństwa za pomocą funkcji
- Gdy interfejs wiersza poleceń wyświetli odpowiedni komunikat, potwierdź wykonanie polecenia.
- Odśwież stronę główną Online Boutique, aby sprawdzić, czy witryna działa i jest w pełni funkcjonalna.
- W powłoce możesz uruchomić odpowiedni skrypt sprawdzania scenariusza, aby zweryfikować stan:
./breakage1-checkout/check.sh # or ./breakage2-canary/check.sh # or ./breakage3-firewall/check.sh
7. Krok 4. Generowanie raportu po incydencie
Kluczowym elementem cyklu życia SRE jest dokumentowanie incydentów, aby zespół mógł wyciągać z nich wnioski. Zautomatyzujmy to za pomocą umiejętności postmortem-create.
- W asystencie CLI poproś o napisanie dokumentu podsumowującego:
Create a postmortem for the checkout service network policy outage. - Agent zbierze informacje o:
- Czas rozpoczęcia incydentu (pobierany z historii lub logów poleceń interfejsu wiersza poleceń).
- Główna przyczyna (blokująca zasada NetworkPolicy).
- działania podjęte w celu ograniczenia tego ryzyka.
- W obszarze roboczym utworzy nowy plik Markdown o nazwie
postmortem.md. - Otwórz
postmortem.md, aby sprawdzić szczegóły. Zobaczysz sekcje takie jak:- Podsumowanie incydentu
- Oś czasu zdarzeń
- Analiza głównej przyczyny (RCA)
- Działania / środki zapobiegawcze
8. Krok 5. Dodawanie wykresów danych podstawowych
Aby analiza powypadkowa była profesjonalna, potrzebujemy wizualnych dowodów na zaistnienie zdarzenia. Użyjemy monitoring-graphs umiejętności, aby pobrać dane ciągu czasowego z Cloud Monitoring (GCM) i wygenerować wykres PNG przedstawiający wzrost liczby błędów.
- Poproś pomocnika CLI o wygenerowanie wykresu i dodanie go do analizy poawaryjnej:
Query GCM for frontend HTTP request error rates over the last 1 hour, generate a line chart, and embed it into postmortem.md. - Pod maską:
- Agent wywołuje skrypt Pythona
monitoring-graphs, aby wysyłać zapytania do Cloud Monitoring. - Pobiera dane (np.
kubernetes.io/container/restart_countlubloadbalancing.googleapis.com/https/request_count). - Wykres jest tworzony przy użyciu parametru
matplotlibi zapisywany jakoincident_metrics.png. - Aktualizuje plik
postmortem.md, wstawiając link do zdjęcia:
- Agent wywołuje skrypt Pythona
- Otwórz wygenerowany plik
incident_metrics.png, aby zobaczyć wykres ilustrujący dokładne momenty, w których klaster przestał działać i kiedy ruch wrócił do normy.
9. Krok 6. Uporządkuj
Aby uniknąć niepotrzebnych opłat za konto Google Cloud, zwalniamy miejsce, usuwając wdrożoną infrastrukturę.
- Przejdź do folderu terraform:
cd ../../microservices-demo/terraform
- Uruchom polecenie usuwania:
terraform destroy -auto-approve
- Sprawdź, czy wszystkie zasoby GKE w GCP zostały usunięte.
10. Gratulacje!
Udało Ci się ukończyć ćwiczenie praktyczne dotyczące badania awarii i przerw w działaniu klastra GKE.
Omówione zagadnienia:
- Wdrożono 10-warstwową wersję demonstracyjną mikroserwisów Online Boutique w GKE.
- Symulacja 3 awarii SRE w rzeczywistym świecie (odmowa zastosowania zasad sieci, wadliwe wdrożenie wersji testowej, odmowa zastosowania reguły zapory sieciowej VPC).
- Używali rozszerzenia SRE dla Antigravity CLI, aby wykrywać i diagnozować awarie.
- Wykorzystano wzorzec Safe Executor do sprawdzania i wykonywania poleceń naprawczych.
- Utworzono profesjonalny raport pośmiertny w formacie Markdown.
- Wysyłanie zapytań do wskaźników Cloud Monitoring w celu automatycznego generowania i osadzania wykresu incydentu opartego na faktach.
Więcej informacji o rozszerzaniu agenta CLI znajdziesz na stronie rozszerzenia SRE w GitHubie.