कुबेरनेट्स अपडेट और रोलबैक
कुबेरनेट्स अपडेट और रोलबैक
परिचय
कुबेरनेट्स (Kubernetes) एक शक्तिशाली कंटेनर ऑर्केस्ट्रेशन प्लेटफॉर्म है जो एप्लिकेशन को डिप्लॉय (deploy), स्केल (scale) और मैनेज (manage) करने में मदद करता है। जैसे-जैसे आपका एप्लिकेशन विकसित होता है, आपको लगातार नए वर्ज़न डिप्लॉय करने और यदि आवश्यक हो तो पिछले वर्ज़न पर वापस जाने की आवश्यकता होती है। यह प्रक्रिया, जिसे अपडेट और रोलबैक (update and rollback) कहा जाता है, कुबेरनेट्स का एक महत्वपूर्ण हिस्सा है। यह लेख शुरुआती लोगों के लिए कुबेरनेट्स में अपडेट और रोलबैक को विस्तार से समझने के लिए है। यहां हम डिप्लॉयमेंट (Deployment) के माध्यम से अपडेट और रोलबैक पर ध्यान केंद्रित करेंगे, जो कुबेरनेट्स में एप्लिकेशन को प्रबंधित करने का एक सामान्य तरीका है।
कुबेरनेट्स डिप्लॉयमेंट क्या है?
डिप्लॉयमेंट कुबेरनेट्स में एप्लिकेशन के वांछित स्थिति (desired state) को परिभाषित करने का एक तरीका है। यह बताता है कि आपके एप्लिकेशन के कितने रेप्लिका (replica) चलने चाहिए, किस इमेज (image) का उपयोग करना है, और अन्य कॉन्फ़िगरेशन (configuration)। डिप्लॉयमेंट रोलिंग अपडेट (rolling update) का समर्थन करता है, जिसका अर्थ है कि नए वर्ज़न को बिना किसी डाउनटाइम (downtime) के धीरे-धीरे पुराने वर्ज़न की जगह ले लेते हैं। यह सुविधा कंटेनर ऑर्केस्ट्रेशन में बहुत महत्वपूर्ण है।
विवरण | | |||||||
यह सुनिश्चित करता है कि आपके एप्लिकेशन के हमेशा वांछित संख्या में रेप्लिका चल रहे हों। | | यह कुबेरनेट्स में डिप्लॉयमेंट की सबसे छोटी इकाई है, जिसमें एक या अधिक कंटेनर होते हैं। | | यह आपके एप्लिकेशन का एक रीड-ओनली (read-only) टेम्पलेट है। | | यह आपके एप्लिकेशन को नेटवर्क पर एक्सपोज़ (expose) करता है। |
} अपडेट कैसे करें?कुबेरनेट्स में एप्लिकेशन को अपडेट करने के कई तरीके हैं, लेकिन सबसे आम तरीका डिप्लॉयमेंट कॉन्फ़िगरेशन को अपडेट करना है। यहां एक सामान्य प्रक्रिया दी गई है: 1. **इमेज को अपडेट करें:** डिप्लॉयमेंट YAML फ़ाइल में, अपने एप्लिकेशन की इमेज को नए वर्ज़न से बदलें। 2. **डिप्लॉयमेंट को लागू करें:** `kubectl apply -f <deployment.yaml>` कमांड का उपयोग करके अपडेटेड डिप्लॉयमेंट कॉन्फ़िगरेशन को लागू करें। 3. **रोलिंग अपडेट:** कुबेरनेट्स स्वचालित रूप से पुराने पॉड (pod) को नए पॉड से बदल देगा। यह प्रक्रिया धीरे-धीरे होती है, ताकि आपके एप्लिकेशन का डाउनटाइम कम से कम हो। आप `kubectl rollout status deployment/<deployment-name>` कमांड का उपयोग करके रोलआउट की स्थिति को ट्रैक (track) कर सकते हैं। उदाहरण के लिए, मान लीजिए आपके पास एक डिप्लॉयमेंट है जिसका नाम `my-app` है और आप इमेज को `my-image:v1` से `my-image:v2` में बदलना चाहते हैं। आप निम्नलिखित कमांड का उपयोग कर सकते हैं: ```bash kubectl set image deployment/my-app my-image=my-image:v2 ``` यह कमांड डिप्लॉयमेंट को अपडेट करेगा और रोलिंग अपडेट शुरू करेगा। रोलबैक कैसे करें?यदि अपडेट के बाद कोई समस्या आती है, तो आपको पिछले वर्ज़न पर वापस जाने की आवश्यकता हो सकती है। कुबेरनेट्स रोलबैक को आसान बनाता है। यहां एक सामान्य प्रक्रिया दी गई है: 1. **रोलबैक इतिहास देखें:** `kubectl rollout history deployment/<deployment-name>` कमांड का उपयोग करके डिप्लॉयमेंट के रोलआउट इतिहास को देखें। यह आपको पिछले रेविज़न (revision) की सूची दिखाएगा। 2. **रोलबैक करें:** `kubectl rollout undo deployment/<deployment-name> --to-revision=<revision-number>` कमांड का उपयोग करके एक विशिष्ट रेविज़न पर रोलबैक करें। उदाहरण के लिए, यदि आप डिप्लॉयमेंट `my-app` को रेविज़न 1 पर रोलबैक करना चाहते हैं, तो आप निम्नलिखित कमांड का उपयोग कर सकते हैं: ```bash kubectl rollout undo deployment/my-app --to-revision=1 ``` यह कमांड डिप्लॉयमेंट को पिछले रेविज़न पर वापस कर देगा और रोलिंग अपडेट शुरू करेगा। अपडेट और रोलबैक रणनीतियांकुबेरनेट्स डिप्लॉयमेंट के लिए कई अपडेट रणनीतियां प्रदान करता है:
आप डिप्लॉयमेंट YAML फ़ाइल में `strategy` फ़ील्ड का उपयोग करके अपडेट रणनीति को कॉन्फ़िगर (configure) कर सकते हैं।
|