1. Giriş

Last Updated: 2026-05-13
SRE uzantısıyla GKE kesintisini inceleme ve güzel bir Post Mortem oluşturma
Google Cloud'da SRE koşumlarıyla denemeler yapmak isteyen operatörler için hazırlanan bu SRE atölyesine hoş geldiniz.
Bu codelab'de şu konular ele alınmaktadır:
- Tanınmış bir açık kaynak microservices-demo'ya dayalı bir GKE kümesi yükleyin.
- Farklı şekillerde (bazıları daha çarpıcı, bazıları daha incelikli) bozarak kesinti oluşturun.
- Aşağıdaki bölüm için Antigravity CLI'yı (veya benzer bir koşum) + SRE Uzantısı'nı yükleyip kullanın.
- Kesintiyi araştırıp düzeltin.
- Olay sonrası analizi oluşturun.
- İzleyicilerin neyin ne zaman olduğunu anlamasına olanak tanıyan, temellendirilmiş bir grafik oluşturmak için grafik oluşturma becerilerini kullanın.
Codelab'in adım adım yapısı şu şekildedir:

Bu atölye çalışmasının amacı:
- SRE uzantısının özelliklerini gösterir ve bu uzantıyla neler yapılabileceğini (OneMCP kurulumu, Safe Executor, Investigation, Post Mortem Generation, grafikler ve CSV özetleri) anlatır.
- Kendi Google Cloud senaryonuzu inceleme becerilerini öğretir.
1. Aşama: Ortam Kurulumu ve Kesinti Simülasyonu
Bu kilometre taşının amacı, GKE Autopilot'ta bir Kubernetes demo uygulaması oluşturmak, Antigravity CLI'yı yüklemek ve üretimdeki olayları simüle etmek için GKE kümesi arızası senaryolarını yapay olarak tetiklemektir.
2. Ara Hedef: SRE Uzantısı ile İnceleme ve Azaltma
Ortamı bozduktan sonra, altyapıyı sistematik olarak keşfetmek, sorunları önceliklendirmek, düzeltmeler için güvenli yürütme düzenini uygulamak ve küme sağlığını doğrulamak üzere SRE uzantısıyla donatılmış agentic KSA araçlarını kullanacaksınız.
3. Aşama: Değerlendirme ve Grafik Oluşturma
Sorun çözüldükten sonra yapılandırılmış bir olay sonrası analiz belgesi oluşturacak ve gerçek metrik verilerini çekmek için GCM (Google Cloud Monitoring) API'lerini kullanarak kesintinin ne zaman ve nasıl gerçekleştiğini belgelemek için görsel grafikler oluşturacaksınız.
Ne oluşturacaksınız?
Bu codelab'de, SRE uzantısını kullanarak GKE kesintilerini inceleyip düzelteceksiniz. Bu kurstan sonra:
- Ağ politikası engelleme, hatalı canary dağıtımları ve güvenlik duvarı kuralı güncellemelerini kullanarak GKE kesintisini simüle edin.
- SRE uzantısı tarafından desteklenen bir KSA asistanını kullanarak küme kesintisini önceliklendirin.
- Güvenli Yürütücü (Safe Executor) kalıbını kullanarak düzeltme adımlarını güvenli bir şekilde uygulayın.
- Kapsamlı bir ölüm sonrası dokümanı oluşturun.
- Google Cloud Monitoring zaman serisi sorgularını kullanarak olay metriklerini grafiğe dönüştürün.
Neler öğreneceksiniz?
- SRE Uzantısı becerilerini kullanarak GKE Kubernetes kaynaklarını ve politikalarını inceleme.
- Aracı tarafından önerilen komutları uygun risk değerlendirmesiyle çalıştırmak için Safe Executor kalıbından nasıl yararlanılır?
monitoring-graphsbecerisini kullanarak doğrudan GCM'den metriklerin temellendirilmiş grafiklerini oluşturma- Olay bulgularını yapılandırılmış bir olay sonrası analiz biçiminde nasıl belgeleyeceğinizi öğrenin.
Gerekenler
- Faturalandırmanın etkin olduğu bir Google Cloud projesi.
- Komut satırı araçları:
gcloud,kubectl,terraform. - Antigravity CLI'nın yerel olarak veya Cloud Shell'de yüklü olması gerekir.
- Bir IDE (ör. vscode, IntelliJ, RubyMine veya Vim).
Neden SRE Extension + Agentic CLI?
Üretim kesintileri hızlı bir şekilde gerçekleşir ve birden fazla alt sistem (Kubernetes kaynakları, VPC ağları, Cloud Monitoring metrikleri, IAM izinleri) arasında korelasyon gerektirir. SRE Uzantısı, Antigravity CLI gibi ajan tabanlı CLI yardımcılarının bağımsız yardımcı pilotlar gibi davranmasına, önceden derlenmiş playbook'ları yürütmesine, izleme grafiklerini sorgulamasına ve insan operatörü sürece dahil ederek güvenli çözümler önermesine olanak tanır.
2. Hazırlanma
Aşağıdaki seçeneklerden birini belirleyin: Bu
makinenizde çalıştırabilir veya bu codelab'i tamamen bulutta çalıştırmak istiyorsanız Cloud Shell'i başlatabilirsiniz.
Yönlendirmesiz ortam kurulumu
- Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.



- Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Dilediğiniz zaman güncelleyebilirsiniz.
- Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve sabittir (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dizeyi otomatik olarak oluşturur. Genellikle bu dizenin ne olduğuyla ilgilenmezsiniz. Çoğu codelab'de proje kimliğinize (genellikle
PROJECT_IDolarak tanımlanır) başvurmanız gerekir. Oluşturulan kimliği beğenmezseniz başka bir rastgele kimlik oluşturabilirsiniz. Dilerseniz kendi adınızı deneyerek kullanılabilir olup olmadığını kontrol edebilirsiniz. Bu adım tamamlandıktan sonra değiştirilemez ve proje süresince geçerli kalır. - Bazı API'lerin kullandığı üçüncü bir değer olan Proje Numarası da vardır. Bu üç değer hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırılmayı önlemek için kaynakları kapatmak üzere oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.
Cloud Shell'i başlatma
Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir ancak bu codelab'de Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.
Google Cloud Console'da sağ üstteki araç çubuğunda Cloud Shell simgesini tıklayın:

Ortamın temel hazırlığı ve bağlantı kurulması yalnızca birkaç dakikanızı alır. İşlem tamamlandığında aşağıdakine benzer bir sonuç görürsünüz:

Bu sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarıyla birlikte gelir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu codelab'deki tüm çalışmalarınızı tarayıcıda yapabilirsiniz. Herhangi bir şey yüklemeniz gerekmez.
3. Ön koşullar (yükleme)
Bu eğitim için yüklemeniz gerekenler:
1. Python ve uv
python ve uv (Python için paket yöneticisi). uv'nin yüklü olduğundan emin olun:
$ curl -LsSf https://astral.sh/uv/install.sh | sh
Neden UV? Tercih ettiğiniz Python yöneticisini kullanabilirsiniz ancak uv kullanmak, Python için ENV/PATH kurulumunun sizin ve Antigravity CLI için eşit olmasını sağlar. Böylece kabuk deneyiminiz, Antigravity CLI'nın deneyimiyle büyük ölçüde aynı olur. Örneğin , virtualenv kullanıyorsanız Antigravity CLI, ortamınızı taklit etmek için "source .env/venv/bin/activate && my-original-command" gibi işlemler yapmaya zorlanır.
2. Antigravity CLI (agy)
Resmi Antigravity CLI'yı (agy komutu) yüklemek için terminalinizi açın ve bootstrap yükleyiciyi çalıştırın:
macOS ve Linux için:
$ curl -fsSL https://antigravity.google/cli/install.sh | bash
Windows (PowerShell) için:
irm https://antigravity.google/cli/install.ps1 | iex
Bu komut dosyası, işletim sisteminizi ve mimarinizi dinamik olarak algılar, derlenmiş en son
agy
ikili programı indirin ve PATH'inizi yapılandırın. Değişikliklerin geçerli olması için terminalinizi yeniden başlatın veya kabuk yapılandırmanızı yeniden yükleyin.

Kimlik doğrulama
Google AI Studio API anahtarı gerekir.
API anahtarınızı dışa aktarın:
export GEMINI_API_KEY="your-api-key"
gcloud ile kimlik doğrulama:
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"
gcloud auth application-default login
Çalışma ortamınızı ayarlama ve mikro hizmetler demo uygulamasını dağıtma
microservices-demo uygulamasını klonlayalım ve altyapı ile uygulamayı Terraform aracılığıyla dağıtalım.
Bu aşamada IDE'nizi (Visual Studio Code, IntelliJ, RubyMine vb.) açıp klasörü açabilirsiniz.
# 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
Ayarlarınızı test etmek için http://[IP ADRESİ] adresine erişip online-boutique uygulamasını yükleyebilirsiniz.
sre-antigravity-cli-extension için çalışma ortamınızı ayarlama
# 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. 1. adım: Kesintiyi simüle edin (Arıza senaryoları)
Bu adımda, gerçek dünyadaki bir üretim olayını simüle etmek için dağıtılan GKE kümesini kasıtlı olarak bozacağız. Aralarından seçim yapabileceğiniz üç senaryo vardır (veya üçünü de sırayla deneyebilirsiniz):
1. Senaryo: Ödeme hizmeti ağının engellenmesi (Standart/Otomatik Pilot)
Bu senaryoda, trafik "kara deliği" görevi gören bir Kubernetes NetworkPolicy uygulanarak ön uç ile ödeme hizmeti arasındaki bağlantının bozulması simüle edilir.
- Senaryo klasörüne gidin:
cd breakage1-checkout
- Bozulmayı tetikleyin:
Bu komut,./break.sh
defaultad alanındaupdate-checkout-from-frontendadlı bir NetworkPolicy oluşturur. Bu politika,checkoutserviceiçin giriş trafiğini,app: frontend-checkout-testetiketine sahip bir pod'dan gelmediği sürece (bu etiket mevcut değildir) reddeder. - Online Butik ön ucunda ürün satın almayı deneyin. Ödeme sayfası kilitlenir veya HTTP 500 hatası gösterir.
2. Senaryo: Hatalı Canary Yayınlama (Istio ile Otomatik Pilot)
Bu senaryoda, ön ucun hatalı bir sürümünün Kubernetes Canary dağıtımı aracılığıyla kullanıma sunulduğu kötü bir dağıtım simüle edilir.
- Senaryo klasörüne gidin:
cd ../breakage2-canary
- Bozulmayı tetikleyin:
Bu komut, ortam değişkenlerinde yazım hatası olan bir canary dağıtımı./break.sh
frontend-canarydağıtır:PRODUCT_CATALOG_SERVICE_ADDR,productcatalogservice:3550yerineproductcatalogservices:3550olarak yapılandırılır. - Ön uç ana sayfasını yükleyin. Kanarya hizmeti ürün kataloğunu çözemediğinden, yönlendirme ağırlıklarına bağlı olarak zaman zaman başarısız olur.
3. Senaryo: VPC güvenlik duvarı kümesi engellemesi
Bu senaryo, VPC güvenlik duvarı yapılandırmasında GKE kümesine gelen tüm trafiği engelleyen bir hatayı simüle eder.
- Senaryo klasörüne gidin:
cd ../breakage3-firewall
- Bozulmayı tetikleyin:
Bu işlem,./break.sh
80,443ve8080bağlantı noktalarına gelen trafiği hedefleyenpriority=1veDENYişlemiyle birliktefrontend-ingress-v2adlı bir VPC düzeyinde güvenlik duvarı kuralı oluşturur. - Online Boutique web sitesine tamamen erişilemez ve isteklerin zaman aşımı gerçekleşir.
5. 2. adım: SRE uzantısıyla kesinti incelemesi
Uygulama kapalı olduğuna göre, KSA yardımcınızı (Antigravity KSA) kullanarak incelemeye başlayalım.
- Ana bozulma senaryoları klasörüne geri dönün ve KSA yardımcınızı başlatın:
cd .. agy
- Asistan'dan altyapı keşfi ve teşhis kontrolü yapmasını isteyin:
Investigate my GKE cluster for outages. Are all services healthy? - Ajanın Yaptığı İşlemler:
- Bu işlem,
investigation-entrypointvegcp-playbooksbecerilerini etkinleştirir. - Başarısız olan hedefleri bulmak için Kubernetes kapsüllerini, dağıtımlarını ve hizmetlerini listeler.
- Ağ politikalarını (Senaryo 1 için), dağıtım yapılandırmalarını (Senaryo 2 için) veya güvenlik duvarı kurallarını (Senaryo 3 için) inceler.
- Bu işlem,
- 1. senaryoda temsilcinin bildirmesi gerekenler: 🔴 Olay Belirlendi:
NetworkPolicyadlıupdate-checkout-from-frontend,checkoutservicepod'larını yalıtıyor. - 2. senaryoda temsilci şunları bildirmelidir: 🔴 Olay tespit edildi:
frontend-canarydağıtımı,productcatalogservice:3550yerine geçersiz bir hizmet uç noktasıproductcatalogservices:3550ile yapılandırılmış. - 3. senaryoda temsilci şunları bildirmelidir: 🔴 Olay Belirlendi: Bir VPC güvenlik duvarı kuralı
frontend-ingress-v2,80,443ve8080bağlantı noktalarındaki giriş trafiğini engelliyor.
6. 3. adım: Kesintiyi azaltma ve düzeltme
Kesintiyi düzeltmek için CLI'nın Safe Executor (Güvenli Yürütücü) kalıbını kullanalım.
- CLI asistanınızdan bir düzeltme önermesini ve uygulamasını isteyin:
Propose a fix for the outage and apply it. - Safe Executor'ın İşleyişi:
- SRE uzantısı, komut önerilerini yürütmeden önce
safe-sre-investigatorbecerisini kullanarak bir güvenlik denetimi gerçekleştirir. - Çalıştırmayı planladığı komutu tam olarak gösterir ve riski değerlendirir (ör. düşük, orta, yüksek).
- 1. senaryo için şu önerilerde bulunur:
kubectl delete networkpolicy update-checkout-from-frontend
- 2. senaryo için şu önerilerde bulunur:
kubectl delete deployment frontend-canary
- 3. senaryo için şu önerilerde bulunulur:
gcloud compute firewall-rules delete frontend-ingress-v2 --quiet
- SRE uzantısı, komut önerilerini yürütmeden önce
- CLI tarafından istendiğinde komut yürütme işlemini onaylayın.
- Online Butik ana sayfasını yenileyerek web sitesinin tekrar çalıştığını ve tüm işlevlerinin kullanılabildiğini doğrulayın.
- Kabuğunuzda, durumu doğrulamak için ilgili senaryo kontrol komut dosyasını çalıştırabilirsiniz:
./breakage1-checkout/check.sh # or ./breakage2-canary/check.sh # or ./breakage3-firewall/check.sh
7. 4. adım: Olay sonrası inceleme raporunu oluşturma
SRE yaşam döngüsünün önemli bir parçası, ekibin olaydan ders çıkarabilmesi için olayı belgelemesidir. Bu işlemi postmortem-create becerisini kullanarak otomatikleştirelim.
- KSA yardımcınızdan olay sonrası dokümanı yazmasını isteyin:
Create a postmortem for the checkout service network policy outage. - Temsilci, aşağıdakilerle ilgili ayrıntıları toplar:
- Olayın başlangıç zamanı (KSA komut geçmişinizden/günlüklerinizden alınır).
- Kök neden (engelleme NetworkPolicy).
- Etkilerini azaltmak için yapılan işlemler.
- Çalışma alanınızda
postmortem.mdadlı yeni bir Markdown dosyası oluşturulur. - Ayrıntıları incelemek için
postmortem.mdsimgesini açın. Şu gibi bölümler görürsünüz:- Olay Özeti
- Etkinliklerin Zaman Çizelgesi
- Temel Neden Analizi (RCA)
- İşlem Öğeleri / Önleyici Önlemler
8. 5. adım: Temellendirilmiş metrik grafikleri ekleme
Olay sonrası analizinin profesyonel olması için olayın görsel kanıtı gerekir. Google Cloud Monitoring'den (GCM) zaman serisi verilerini getirmek ve hata artışını gösteren bir PNG grafiği oluşturmak için monitoring-graphs becerisini kullanacağız.
- KSA yardımcınızdan grafiği oluşturup postmortem raporuna eklemesini isteyin:
Query GCM for frontend HTTP request error rates over the last 1 hour, generate a line chart, and embed it into postmortem.md. - Testlerin İşleyiş Şekli:
- Aracı, Cloud Monitoring'e sorgu göndermek için
monitoring-graphsPython komut dosyasını çağırır. - Metrikleri (ör.
kubernetes.io/container/restart_countveyaloadbalancing.googleapis.com/https/request_count) getirir. - Grafiği
matplotlibkullanarak çizer veincident_metrics.pngolarak kaydeder. - Resim bağlantısı ekleyerek
postmortem.mddosyasını günceller:
- Aracı, Cloud Monitoring'e sorgu göndermek için
- Kümenin tam olarak ne zaman çöktüğünü ve trafiğin ne zaman normale döndüğünü gösteren grafiği görmek için oluşturulan
incident_metrics.pngdosyasını açın.
9. 6. adım: Temizleme
Google Cloud hesabınızın gereksiz ücretlere tabi olmaması için dağıtılan altyapıyı temizleyelim.
- terraform klasörüne gidin:
cd ../../microservices-demo/terraform
- Yok etme komutunu çalıştırın:
terraform destroy -auto-approve
- Tüm GCP GKE kaynaklarının başarıyla silindiğini doğrulayın.
10. Tebrikler!
GKE Kümesi Arızası ve Kesintisi İnceleme Codelab'ini tamamladınız.
İşlediğiniz konular:
- 10 katmanlı Online Boutique mikro hizmet demosunu GKE'ye dağıttı.
- Üç gerçek SRE kesintisi (ağ politikası reddi, hatalı canary dağıtımı, VPC güvenlik duvarı kuralı reddi) simüle edildi.
- Kesintileri tespit etmek ve teşhis etmek için Antigravity CLI'ın SRE uzantısını kullandık.
- Düzeltme komutlarını incelemek ve yürütmek için Safe Executor (Güvenli Yürütücü) kalıbından yararlanıldı.
- Profesyonel bir Markdown postmortem oluşturdu.
- Temellendirilmiş bir olay grafiğini otomatik olarak oluşturup yerleştirmek için Cloud Monitoring metriklerini sorgulayın.
CLI aracınızı genişletme hakkında daha fazla bilgi için SRE Extension GitHub sayfasını inceleyin.