Antigravity CLI और SRE एक्सटेंशन की मदद से, GKE के बंद होने की समस्या की जांच करना और पोस्ट मॉर्टम रिपोर्ट बनाना

1. परिचय

856ff52e60953a92.png

Last Updated: 2026-05-13

SRE एक्सटेंशन की मदद से, GKE में हुई रुकावट की जांच करना और पोस्ट मॉर्टम रिपोर्ट बनाना

Google Cloud पर एसआरई हार्नेस का इस्तेमाल करने वाले ऑपरेटर के लिए, इस SRE वर्कशॉप में आपका स्वागत है!

इस कोडलैब से आपको इनके बारे में जानकारी मिलेगी:

  1. किसी जाने-माने ओपन सोर्स microservices-demo के आधार पर GKE क्लस्टर इंस्टॉल करें.
  2. अलग-अलग तरीकों से आउटेज की स्थिति बनाएं. कुछ तरीके ज़्यादा असरदार होते हैं, तो कुछ कम.
  3. नीचे दिए गए हिस्से के लिए, Antigravity CLI (या इसी तरह का कोई अन्य टूल) + SRE एक्सटेंशन इंस्टॉल करें और इसका इस्तेमाल करें.
  4. इस समस्या की जांच करें और इसे ठीक करें.
  5. पोस्ट मॉर्टम बनाएं.
  6. ग्राफ़ बनाने की स्किल का इस्तेमाल करके, भरोसेमंद जानकारी वाला ग्राफ़ जनरेट करें. इससे दर्शकों को यह समझने में मदद मिलेगी कि क्या हुआ और कब हुआ.

कोडलैब का सिलसिलेवार स्ट्रक्चर यहां दिया गया है:

कोडलैब के स्ट्रक्चर का डायग्राम

इस वर्कशॉप का मकसद है:

  1. इस वीडियो में, SRE एक्सटेंशन की क्षमताओं के बारे में बताया गया है. साथ ही, यह दिखाया गया है कि इस एक्सटेंशन से क्या-क्या किया जा सकता है: OneMCP सेटअप, Safe Executor, जांच, पोस्ट मॉर्टम जनरेशन, ग्राफ़, और CSV की खास जानकारी.
  2. आपको Google Cloud के अपने इस्तेमाल के उदाहरण की जांच करने के लिए ज़रूरी कौशल सिखाना.

पहला माइलस्टोन: एनवायरमेंट सेटअप करना और आउटेज का सिम्युलेशन करना

इस माइलस्टोन का मकसद, GKE Autopilot पर Kubernetes का डेमो ऐप्लिकेशन सेट अप करना, Antigravity सीएलआई इंस्टॉल करना, और प्रोडक्शन की घटनाओं को सिम्युलेट करने के लिए, GKE क्लस्टर के काम न करने की स्थितियों को आर्टिफ़िशियली ट्रिगर करना है.

दूसरा माइलस्टोन: एसआरई एक्सटेंशन की मदद से जांच करना और समस्या को कम करना

एनवायरमेंट को ब्रेक करने के बाद, आपको एसआरई एक्सटेंशन से लैस एजेंटिक सीएलआई टूल का इस्तेमाल करना होगा. इससे, आपको इन्फ़्रास्ट्रक्चर का पता लगाने, समस्याओं को प्राथमिकता देने, समस्याओं को ठीक करने के लिए सुरक्षित तरीके से लागू करने के पैटर्न को लागू करने, और क्लस्टर की सेहत की पुष्टि करने में मदद मिलेगी.

तीसरा माइलस्टोन: पोस्ट मॉर्टम और ग्राफ़ जनरेशन

समस्या हल होने के बाद, आपको स्ट्रक्चर्ड इंसिडेंट पोस्ट मॉर्टम दस्तावेज़ जनरेट करना होगा. साथ ही, GCM (Google Cloud Monitoring) API का इस्तेमाल करके, मेट्रिक का असली डेटा पाना होगा. इससे विज़ुअल चार्ट बनाए जा सकेंगे. इन चार्ट में यह जानकारी होगी कि आउटेज कब और कैसे हुआ.

आपको क्या बनाने को मिलेगा

इस कोडलैब में, एसआरई एक्सटेंशन का इस्तेमाल करके, GKE में होने वाली रुकावटों की जांच की जाएगी और उन्हें ठीक किया जाएगा. आपको:

  • नेटवर्क नीति को ब्लॉक करके, बग वाले कैनरी डिप्लॉयमेंट, और फ़ायरवॉल के नियमों को अपडेट करके, GKE के बंद होने का सिम्युलेट करें.
  • एसआरई एक्सटेंशन की मदद से, सीएलआई असिस्टेंट का इस्तेमाल करके क्लस्टर के बंद होने की समस्या को हल करें.
  • Safe Executor पैटर्न का इस्तेमाल करके, समस्या हल करने के चरणों को सुरक्षित तरीके से लागू करें.
  • समस्या की पूरी जानकारी देने वाला दस्तावेज़ जनरेट करें.
  • Google Cloud Monitoring की टाइम-सीरीज़ क्वेरी का इस्तेमाल करके, घटना की मेट्रिक का ग्राफ़ बनाएं.

आपको क्या सीखने को मिलेगा

  • एसआरई एक्सटेंशन की सुविधाओं का इस्तेमाल करके, GKE Kubernetes के संसाधनों और नीतियों की जांच कैसे करें.
  • सुरक्षित एक्ज़ीक्यूटर पैटर्न का इस्तेमाल करके, एजेंट के सुझाए गए निर्देशों को जोखिम का सही आकलन करके कैसे चलाया जाए.
  • GCM से सीधे तौर पर मेट्रिक के भरोसेमंद चार्ट जनरेट करने के लिए, monitoring-graphs स्किल का इस्तेमाल करने का तरीका.
  • किसी घटना की जांच के नतीजों को, पोस्ट मॉर्टम के स्ट्रक्चर्ड फ़ॉर्मैट में दस्तावेज़ के तौर पर सेव करने का तरीका.

आपको इन चीज़ों की ज़रूरत होगी

  • बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट.
  • कमांड-लाइन टूल: gcloud, kubectl, terraform.
  • Antigravity CLI, स्थानीय तौर पर या Cloud Shell में इंस्टॉल किया गया हो.
  • कोई आईडीई (जैसे, vscode, IntelliJ, RubyMine या Vim).

एसआरई एक्सटेंशन + एजेंटिक सीएलआई क्यों?

प्रोडक्शन में आने वाली रुकावटें तेज़ी से होती हैं. इसलिए, कई सबसिस्टम (Kubernetes संसाधन, वीपीसी नेटवर्क, Cloud Monitoring मेट्रिक, IAM अनुमतियां) के बीच कोरिलेशन की ज़रूरत होती है. एसआरई एक्सटेंशन की मदद से, एजेंटिक सीएलआई हेल्पर (जैसे, Antigravity सीएलआई) को अपने-आप काम करने वाले को-पायलट के तौर पर काम करने की अनुमति मिलती है. ये हेल्पर, पहले से कंपाइल की गई प्लेबुक को लागू करते हैं, मॉनिटरिंग ग्राफ़ के बारे में क्वेरी करते हैं, और सुरक्षित तरीके से समस्याओं को ठीक करने के सुझाव देते हैं. साथ ही, ये हेल्पर, ऑपरेटर को भी लूप में रखते हैं.

2. सेट अप करना

अगर आपको यह

कोडलैब को अपनी मशीन पर चलाएं या अगर आपको इस कोडलैब को पूरी तरह से क्लाउड में चलाना है, तो Cloud Shell शुरू करें.

अपने हिसाब से एनवायरमेंट सेट अप करना

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते हैं. इसे कभी भी अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता. ज़्यादातर कोडलैब में, आपको अपने प्रोजेक्ट आईडी (आम तौर पर PROJECT_ID के तौर पर पहचाना जाता है) का रेफ़रंस देना होगा. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास अपना नाम आज़माने का विकल्प भी है. इससे आपको पता चलेगा कि वह नाम उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट की अवधि तक बना रहता है.
  • आपकी जानकारी के लिए बता दें कि एक तीसरी वैल्यू भी होती है, जिसे प्रोजेक्ट नंबर कहते हैं. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
  1. इसके बाद, आपको Cloud Console में बिलिंग की सुविधा चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, संसाधनों को बंद किया जा सकता है. इसके लिए, बनाए गए संसाधनों को मिटाएं या प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ताओं को, 300 डॉलर का क्रेडिट मुफ़्त में आज़माने का प्रोग्राम मिलता है.

Cloud Shell शुरू करें

Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

Google Cloud Console में, सबसे ऊपर दाएं कोने में मौजूद टूलबार पर, Cloud Shell आइकॉन पर क्लिक करें:

Cloud Shell चालू करें

इसे चालू करने और एनवायरमेंट से कनेक्ट करने में सिर्फ़ कुछ सेकंड लगेंगे. यह प्रोसेस पूरी होने के बाद, आपको कुछ ऐसा दिखेगा:

Google Cloud Shell टर्मिनल का स्क्रीनशॉट. इसमें दिखाया गया है कि एनवायरमेंट कनेक्ट हो गया है

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. साथ ही, Google Cloud पर काम करता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इस कोडलैब में मौजूद सभी टास्क, ब्राउज़र में किए जा सकते हैं. आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.

3. ज़रूरी शर्तें (इंस्टॉल करने के लिए)

इस ट्यूटोरियल के लिए, आपको ये इंस्टॉल करने होंगे:

1. Python और uv

python और uv (Python के लिए पैकेज मैनेजर). पक्का करें कि आपने uv इंस्टॉल किया हो:

$ curl -LsSf https://astral.sh/uv/install.sh | sh

यूवी क्यों? अपनी पसंद के Python मैनेजर का इस्तेमाल किया जा सकता है. हालांकि, uv का इस्तेमाल करने से यह पक्का किया जा सकेगा कि Python के लिए ENV/PATH सेटअप, आपके और Antigravity CLI के लिए एक जैसा हो. इससे, शेल का आपका अनुभव, Antigravity CLI के अनुभव जैसा ही होगा. अगर virtualenv का इस्तेमाल किया जाता है, तो उदाहरण के लिए, Antigravity CLI को आपके एनवायरमेंट की नकल करने के लिए, "source .env/venv/bin/activate && my-original-command" जैसे काम करने होंगे.

2. Antigravity CLI (agy)

आधिकारिक Antigravity CLI (agy कमांड) को इंस्टॉल करने के लिए, अपना टर्मिनल खोलें और बूटस्ट्रैप इंस्टॉलर चलाएं:

macOS और Linux के लिए:

$ curl -fsSL https://antigravity.google/cli/install.sh | bash

Windows (PowerShell) के लिए:

irm https://antigravity.google/cli/install.ps1 | iex

यह स्क्रिप्ट, आपके ओएस और आर्किटेक्चर का पता लगाएगी. साथ ही, कंपाइल किया गया नया वर्शन डाउनलोड करेगी

agy

बाइनरी डाउनलोड करें और अपने PATH को कॉन्फ़िगर करें. बदलावों को लागू करने के लिए, अपने टर्मिनल को रीस्टार्ट करें या अपने शेल कॉन्फ़िगरेशन को फिर से लोड करें.

efade99623113f1.png

पुष्टि करना

आपके पास Google AI Studio API पासकोड होना चाहिए.

अपना एपीआई पासकोड एक्सपोर्ट करें:

export GEMINI_API_KEY="your-api-key"

gcloud की मदद से पुष्टि करें:

export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"
gcloud auth application-default login

अपना वर्क एनवायरमेंट सेट अप करना और माइक्रोसेवाओं वाले डेमो ऐप्लिकेशन को डिप्लॉय करना

आइए, microservices-demo ऐप्लिकेशन को क्लोन करें. साथ ही, टेराफ़ॉर्म की मदद से इन्फ़्रास्ट्रक्चर और ऐप्लिकेशन को डिप्लॉय करें

इस समय, अपने IDE (Visual Studio Code, IntelliJ, RubyMine वगैरह) को खोलें और फ़ोल्डर खोलें.

# 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

सेटअप की जांच करने के लिए, http://[आईपी पता] को ऐक्सेस करें और ऑनलाइन-बुटिक ऐप्लिकेशन लोड करें

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. पहला चरण: आउटेज की स्थिति का सिम्युलेट करना (ब्रेकेज के उदाहरण)

इस चरण में, हम जान-बूझकर डिप्लॉय किए गए GKE क्लस्टर को तोड़ देंगे, ताकि प्रोडक्शन से जुड़ी किसी असल समस्या का पता लगाया जा सके. आपके पास चुनने के लिए तीन स्थितियां हैं. इसके अलावा, तीनों को क्रम से आज़माया जा सकता है:

पहला विकल्प: चेकआउट सेवा के नेटवर्क को ब्लॉक करना (स्टैंडर्ड/ऑटोपायलट)

इस उदाहरण में, फ़्रंटएंड और चेकआउट सेवा के बीच कनेक्शन टूटने की स्थिति को दिखाया गया है. इसके लिए, Kubernetes NetworkPolicy का इस्तेमाल किया गया है. यह ट्रैफ़िक के लिए "ब्लैक होल" की तरह काम करता है.

  1. सिनेरियो फ़ोल्डर पर जाएं:
    cd breakage1-checkout
    
  2. ब्रेकेज को ट्रिगर करना:
    ./break.sh
    
    इससे default नेमस्पेस में update-checkout-from-frontend नाम की एक NetworkPolicy बनती है. यह checkoutservice में आने वाले ट्रैफ़िक को तब तक अनुमति नहीं देती, जब तक कि वह app: frontend-checkout-test लेबल वाले पॉड से न आ रहा हो. हालांकि, ऐसा कोई पॉड मौजूद नहीं है.
  3. ऑनलाइन स्टोर के फ़्रंटएंड पर जाकर, आइटम खरीदने की कोशिश करें. चेकआउट पेज हैंग हो जाएगा या एचटीटीपी 500 गड़बड़ी दिखेगी.

दूसरी स्थिति: कैनरी रोलआउट में गड़बड़ी (Istio के साथ ऑटोपायलट)

इस उदाहरण में, खराब डिप्लॉयमेंट का सिम्युलेशन दिखाया गया है. इसमें, Kubernetes Canary डिप्लॉयमेंट के ज़रिए फ़्रंटएंड के गड़बड़ी वाले वर्शन को रोल आउट किया गया है.

  1. सिनेरियो फ़ोल्डर पर जाएं:
    cd ../breakage2-canary
    
  2. ब्रेकेज को ट्रिगर करना:
    ./break.sh
    
    इससे कैनरी डिप्लॉयमेंट frontend-canary डिप्लॉय होता है. इसके एनवायरमेंट वैरिएबल में टाइपिंग की गड़बड़ी है: PRODUCT_CATALOG_SERVICE_ADDR को productcatalogservice:3550 के बजाय productcatalogservices:3550 पर कॉन्फ़िगर किया गया है.
  3. फ़्रंटएंड होम पेज लोड करता है. कभी-कभी यह अनुरोध पूरा नहीं होगा. ऐसा राउटिंग वेट के आधार पर होगा. इसकी वजह यह है कि कैनरी सेवा, प्रॉडक्ट कैटलॉग को हल नहीं कर पाती.

तीसरा विकल्प: वीपीसी फ़ायरवॉल क्लस्टर ब्लॉक होना

इस स्थिति में, वीपीसी फ़ायरवॉल कॉन्फ़िगरेशन में हुई गड़बड़ी को सिम्युलेट किया जाता है. इससे GKE क्लस्टर में आने वाले सभी ट्रैफ़िक को ब्लॉक किया जाता है.

  1. सिनेरियो फ़ोल्डर पर जाएं:
    cd ../breakage3-firewall
    
  2. ब्रेकेज को ट्रिगर करना:
    ./break.sh
    
    इससे वीपीसी लेवल का फ़ायरवॉल नियम frontend-ingress-v2 बन जाता है. इसमें priority=1 और ऐक्शन DENY होता है. यह 80, 443, और 8080 पोर्ट पर आने वाले इन्ग्रेस ट्रैफ़िक को टारगेट करता है.
  3. ऑनलाइन बुटीक की वेबसाइट को ऐक्सेस नहीं किया जा सकेगा. साथ ही, अनुरोधों का समय खत्म हो जाएगा.

5. दूसरा चरण: एसआरई एक्सटेंशन की मदद से, सेवा बंद होने की वजह का पता लगाना

ऐप्लिकेशन बंद हो गया है. अब, सीएलआई असिस्टेंट (Antigravity CLI) का इस्तेमाल करके जांच शुरू करते हैं.

  1. ब्रेकेज के मुख्य फ़ोल्डर पर वापस जाएं और अपने सीएलआई हेल्पर को लॉन्च करें:
    cd ..
    agy
    
  2. Assistant से, इंफ़्रास्ट्रक्चर की जांच करने और गड़बड़ी का पता लगाने के लिए कहें:
    Investigate my GKE cluster for outages. Are all services healthy?
    
  3. एजेंट क्या करता है:
    • इससे investigation-entrypoint और gcp-playbooks की सुविधाएं चालू हो जाती हैं.
    • इसमें Kubernetes पॉड, डिप्लॉयमेंट, और सेवाओं की सूची होती है, ताकि फ़ेल हो रहे टारगेट का पता लगाया जा सके.
    • यह नेटवर्क की नीतियों (पहले उदाहरण के लिए), डिप्लॉयमेंट कॉन्फ़िगरेशन (दूसरे उदाहरण के लिए) या फ़ायरवॉल के नियमों (तीसरे उदाहरण के लिए) की जांच करता है.
  4. पहले उदाहरण के लिए, एजेंट को यह जानकारी देनी चाहिए: 🔴 समस्या का पता चला: update-checkout-from-frontend नाम का NetworkPolicy, checkoutservice पॉड को अलग कर रहा है.
  5. दूसरी स्थिति में, एजेंट को यह शिकायत करनी चाहिए: 🔴 समस्या की पहचान की गई: डिप्लॉयमेंट frontend-canary को productcatalogservice:3550 के बजाय, अमान्य सेवा एंडपॉइंट productcatalogservices:3550 के साथ कॉन्फ़िगर किया गया है.
  6. तीसरी स्थिति के लिए, एजेंट को यह रिपोर्ट करनी चाहिए: 🔴 समस्या का पता चला: वीपीसी फ़ायरवॉल का नियम frontend-ingress-v2, पोर्ट 80, 443, और 8080 पर इन्ग्रेस ट्रैफ़िक को अस्वीकार कर रहा है.

6. तीसरा चरण: सेवा बंद होने की समस्या को कम करना और उसे ठीक करना

आइए, आउटेज को ठीक करने के लिए, सीएलआई के सेफ़ एक्ज़ीक्यूटर पैटर्न का इस्तेमाल करें.

  1. अपनी सीएलआई असिस्टेंट से, समस्या को ठीक करने का सुझाव देने और उसे लागू करने के लिए कहें:
    Propose a fix for the outage and apply it.
    
  2. Safe Executor in Action:
    • कमांड के सुझावों को लागू करने से पहले, SRE एक्सटेंशन safe-sre-investigator स्किल का इस्तेमाल करके सुरक्षा ऑडिट करता है.
    • यह आपको उस कमांड के बारे में बताएगा जिसे वह चलाने वाला है.साथ ही, जोखिम का आकलन करेगा. जैसे, कम, मध्यम, ज़्यादा.
    • पहले उदाहरण के लिए, यह सुझाव देगा:
      kubectl delete networkpolicy update-checkout-from-frontend
      
    • दूसरी स्थिति के लिए, यह सुझाव देगा:
      kubectl delete deployment frontend-canary
      
    • तीसरे उदाहरण के लिए, यह सुझाव देगा:
      gcloud compute firewall-rules delete frontend-ingress-v2 --quiet
      
  3. जब सीएलआई आपसे पुष्टि करने के लिए कहे, तब निर्देश के लागू होने की पुष्टि करें.
  4. ऑनलाइन बुटीक के होम पेज को रीफ़्रेश करके पुष्टि करें कि वेबसाइट वापस आ गई है और पूरी तरह से काम कर रही है.
  5. अपने शेल में, इससे जुड़ी स्क्रिप्ट चलाकर यह जांच की जा सकती है कि सब कुछ ठीक है या नहीं:
    ./breakage1-checkout/check.sh
    # or ./breakage2-canary/check.sh
    # or ./breakage3-firewall/check.sh
    

7. चौथा चरण: घटना की जांच के बाद की रिपोर्ट जनरेट करना

एसआरई लाइफ़साइकल का एक अहम हिस्सा, घटना की जानकारी देने वाला दस्तावेज़ तैयार करना है. इससे टीम को घटना के बारे में जानने में मदद मिलती है. postmortem-create स्किल का इस्तेमाल करके, इसे ऑटोमेट करते हैं.

  1. सीएलआई असिस्टेंट से, पोस्ट मॉर्टम दस्तावेज़ लिखने के लिए कहें:
    Create a postmortem for the checkout service network policy outage.
    
  2. एजेंट इन विषयों के बारे में जानकारी इकट्ठा करेगा:
    • घटना शुरू होने का समय (यह जानकारी, आपकी सीएलआई कमांड के इतिहास/लॉग से मिलती है).
    • असल वजह (ब्लॉक करने वाली NetworkPolicy).
    • इसे कम करने के लिए की गई कार्रवाइयां.
  3. यह आपके वर्कस्पेस में postmortem.md नाम की एक नई मार्कडाउन फ़ाइल बनाएगा.
  4. जानकारी देखने के लिए, postmortem.md खोलें. आपको इस तरह के सेक्शन दिखेंगे:
    • डेटा से जुड़े मामले की खास जानकारी
    • इवेंट की टाइमलाइन
    • समस्या की वजह का विश्लेषण (आरसीए)
    • कार्रवाई के आइटम / रोकथाम के उपाय

8. पांचवां चरण: भरोसेमंद मेट्रिक के ग्राफ़ जोड़ना

पोस्ट मॉर्टम को पेशेवर तरीके से करने के लिए, हमें घटना का विज़ुअल सबूत चाहिए. हम monitoring-graphs स्किल का इस्तेमाल करके, Google Cloud Monitoring (GCM) से टाइम-सीरीज़ डेटा फ़ेच करेंगे. इसके बाद, गड़बड़ी में हुई बढ़ोतरी दिखाने वाला पीएनजी चार्ट जनरेट करेंगे.

  1. सीएलआई हेल्पर से, ग्राफ़ जनरेट करने और उसे पोस्ट मॉर्टम में जोड़ने के लिए कहें:
    Query GCM for frontend HTTP request error rates over the last 1 hour, generate a line chart, and embed it into postmortem.md.
    
  2. तकनीकी जानकारी:
    • एजेंट, Cloud Monitoring से क्वेरी करने के लिए monitoring-graphs Python स्क्रिप्ट को कॉल करता है.
    • यह मेट्रिक फ़ेच करता है. जैसे, kubernetes.io/container/restart_count या loadbalancing.googleapis.com/https/request_count.
    • यह matplotlib का इस्तेमाल करके चार्ट बनाता है और इसे incident_metrics.png के तौर पर सेव करता है.
    • यह postmortem.md फ़ाइल को अपडेट करता है. इसके लिए, इमेज का लिंक डाला जाता है:
      ![Incident Metric Graph](incident_metrics.png)
      
  3. जनरेट की गई incident_metrics.png फ़ाइल खोलें. इसमें मौजूद चार्ट से पता चलता है कि क्लस्टर कब डाउन हुआ और ट्रैफ़िक कब सामान्य हुआ.

9. छठा चरण: क्लीनअप

यह पक्का करने के लिए कि आपके Google Cloud खाते पर गैर-ज़रूरी शुल्क न लगे, आइए डिप्लॉय किए गए इन्फ़्रास्ट्रक्चर को हटा दें.

  1. terraform फ़ोल्डर पर जाएं:
    cd ../../microservices-demo/terraform
    
  2. destroy कमांड चलाएं:
    terraform destroy -auto-approve
    
  3. पुष्टि करें कि सभी GCP GKE संसाधन मिटा दिए गए हैं.

10. बधाई हो!

आपने GKE क्लस्टर में आने वाली समस्याओं और आउटेज की जांच करने वाला Codelab पूरा कर लिया है!

आपने क्या-क्या कवर किया है:

  • GKE पर 10-टियर वाली Online Boutique माइक्रोसेवा का डेमो डिप्लॉय किया गया.
  • असली दुनिया में एसआरई से जुड़ी तीन समस्याओं को सिम्युलेट किया गया. ये समस्याएं हैं: नेटवर्क नीति का उल्लंघन, कैनरी रोलआउट में गड़बड़ी, और वीपीसी फ़ायरवॉल के नियम का उल्लंघन.
  • हमने Antigravity सीएलआई के लिए SRE एक्सटेंशन का इस्तेमाल किया, ताकि आउटेज का पता लगाया जा सके और उनकी वजहों का पता लगाया जा सके.
  • समस्या ठीक करने के लिए, Safe Executor पैटर्न का इस्तेमाल करके समीक्षा की गई और कमांड लागू की गईं.
  • प्रोफ़ेशनल मार्कडाउन पोस्टमॉर्टम बनाया.
  • क्वेरी की गई Cloud Monitoring मेट्रिक, ताकि भरोसेमंद जानकारी देने वाला इंसिडेंट ग्राफ़ अपने-आप जनरेट हो सके और उसे एम्बेड किया जा सके.

अपने सीएलआई एजेंट को बढ़ाने के बारे में ज़्यादा जानकारी के लिए, SRE एक्सटेंशन का GitHub पेज देखें.