कस्टम स्टेज के साथ GKE रोलआउट सीक्वेंसिंग (Rollout Sequencing)

Google Cloud का GKE अब आपको कस्टम-स्टेज रोलआउट सीक्वेंसिंग का उपयोग करके क्लस्टर्स के अपग्रेड होने का सटीक क्रम निर्धारित करने की अनुमति देता है, जो डिफ़ॉल्ट क्षेत्रीय शेड्यूल के बजाय आपके अपने बिजनेस लॉजिक का पालन करता है।

दर्जनों या सैकड़ों एनवायरनमेंट में Kubernetes क्लस्टर्स को अपग्रेड करना एक चुनौतीपूर्ण कार्य है। सुरक्षा पैच नियमित रूप से आते हैं, लेकिन आपको प्रोडक्शन सेवाओं को भी चालू रखना होता है। पुराना क्षेत्रीय अपग्रेड मॉडल किसी स्टेजिंग एनवायरनमेंट के वैलिडेशन पूरा होने से पहले ही प्रोडक्शन क्लस्टर पर नया कंट्रोल-प्लेन वर्जन पुश कर सकता था, जिससे पूरा फ्लीट (fleet) untested बदलावों के जोखिम में आ जाता था।

पुराना मॉडल क्यों कमज़ोर था

एक क्षेत्रीय रोलआउट (regional rollout) क्षेत्र के प्रत्येक क्लस्टर को एक ही बकेट के रूप में मानता है। जब अपग्रेड विंडो खुलती है, तो कंट्रोल प्लेन और नोड्स समानांतर (parallel) रूप से अपग्रेड होते हैं, चाहे क्लस्टर रिलीज़ पाइपलाइन में कहीं भी हो। जो टीमें सख्त 'canary-then-production' फ्लो पर निर्भर करती हैं, उनके साथ "out-of-order" अपग्रेड की समस्या हो जाती है, जिससे ऐसी रिग्रेशन (regressions) हो सकती हैं जिन्हें किसी विशिष्ट बदलाव से जोड़ना कठिन होता है। इसकी लागत केवल डाउनटाइम नहीं है; बल्कि उस समस्या को डीबग करने में खर्च होने वाला इंजीनियरिंग समय भी है जिसे पहले ही पकड़ा जा सकता था।

GKE रोलआउट सीक्वेंसिंग क्या जोड़ती है

यह नया फीचर एक RolloutSequence ऑब्जेक्ट पेश करता है जो चरणों (stages) की एक श्रृंखला को परिभाषित करता है। प्रत्येक स्टेज आपके फ्लीट का एक लॉजिकल हिस्सा है, जिसे लेबल सेलेक्टर (label selectors) द्वारा पहचाना जाता है। सिस्टम एक निश्चित (deterministic) पथ का पालन करता है:

  • सबसे पहले कंट्रोल-प्लेन अपग्रेड। GKE किसी भी नोड को छूने से पहले केंद्रीय प्रबंधन घटक (central management component) को लक्षित वर्जन पर ले जाता है।
  • सोक टाइमर (Soak timer) शुरू होता है। कंट्रोल प्लेन के लक्ष्य तक पहुँचने के बाद, एक कॉन्फ़िगर करने योग्य देरी (delay) चलती है, जो आपको हेल्थ चेक चलाने के लिए समय देती है।
  • नोड अपग्रेड समानांतर में चलते हैं। जब सोक टाइमर काउंटडाउन कर रहा होता है, तब GKE नोड्स को अपग्रेड करता है, जिससे क्लस्टर जल्दी से नए वर्जन पर आ जाता है।
  • अगला स्टेज केवल पूरा होने के बाद ही शुरू होता है। जब वर्तमान स्टेज के सभी नोड्स और कंट्रोल प्लेन का काम पूरा हो जाता है और सोक टाइमर समाप्त हो जाता है, तब GKE अगले स्टेज पर आगे बढ़ता है।

फ्लीट को छोटे, लेबल वाले समूहों में विभाजित करके, आप पहले कुछ कैनरी (canary) क्लस्टर्स को अपग्रेड कर सकते हैं, यह सत्यापित कर सकते हैं कि मॉनिटरिंग और ट्रैफिक-रूटिंग नियम अपेक्षित रूप से काम कर रहे हैं या नहीं, और फिर उसी वर्जन को बाकी प्रोडक्शन में रोल आउट कर सकते हैं।

नियम जो सीक्वेंस को व्यवस्थित रखते हैं

  • कैच-ऑल स्टेज (Catch-all stage): अंतिम स्टेज में लेबल सेलेक्टर को छोड़ दिया जाता है, जिससे यह सुनिश्चित होता है कि जो क्लस्टर पहले मैच नहीं हुए, उन्हें भी अपग्रेड मिल जाए।
  • कॉन्फ्लिक्ट रेजोल्यूशन (Conflict resolution): यदि किसी क्लस्टर के लेबल एक से अधिक स्टेज को संतुष्ट करते हैं, तो GKE उसे पहले मैच होने वाले स्टेज में रखता है, जिससे गलती से होने वाले डबल अपग्रेड से बचा जा सके।

रियल-टाइम कंट्रोल नॉब्स (Control knobs)

एक सक्रिय रोलआउट के दौरान आप नियंत्रण में रहते हैं:

  • Pause किसी भी आगे के अपग्रेड को रोक देता है, जिससे आप समस्या को आगे फैलने दिए बिना कैनरी स्टेज में विफलता की जांच कर सकते हैं।
  • Force-complete शेष सोक टाइम को समाप्त कर देता है जब आपके वैलिडेशन स्क्रिप्ट जल्दी सफलता की रिपोर्ट देते हैं, जिससे रोलआउट की गति बढ़ जाती है।
  • Cancel पूरी सीक्वेंस को रद्द कर देता है यदि नया रिलीज़ किया गया वर्जन कोई क्रिटिकल बग दिखाता है, जिससे आप वापस पुराने वर्जन पर जा सकते हैं या हॉटफिक्स का इंतज़ार कर सकते हैं।

किसे लाभ होता है, और इसके ट्रेड-ऑफ क्या हैं

आगे क्या देखें

निष्कर्ष (Takeaway)

कस्टम-स्टेज रोलआउट सीक्वेंसिंग GKE ऑपरेटर्स को क्लस्टर्स को उस क्रम में अपग्रेड करने की क्षमता देती है जैसा उनका बिजनेस मांगता है, न कि उस क्रम में जैसा प्लेटफॉर्म तय करता है। कंट्रोल-प्लेन और नोड अपग्रेड को अलग करके, एक कॉन्फ़िगर करने योग्य सोक पीरियड जोड़कर, और pause/force-complete/cancel जैसे एक्शन प्रदान करके, यह फीचर अपग्रेड के जोखिम को कम करता है और साथ ही क्लाउड-नेटिव टीमों के लिए आवश्यक गति को भी बनाए रखता है। जो कोई भी फ्लीट-व्यापी Kubernetes अपग्रेड की अराजकता से जूझ रहा है, उसके लिए यह नया सीक्वेंसिंग मॉडल सुरक्षित और बिजनेस-एलाइन ऑटोमेशन की दिशा में एक ठोस कदम है।