जून 10, 2022

Kubernetes StatefulSet वापरताना तुम्हाला माहित असले पाहिजे 3 सर्वोत्तम पद्धती

कोणत्याही प्रकारचे क्लस्टर केलेले वातावरण तयार करण्यासाठी सातत्यपूर्ण तैनाती आणि स्केलिंगला अनुमती देण्यासाठी बरेच काम करावे लागते. 

चांगली बातमी आहे आपण मोठ्या प्रमाणात कंटेनर व्यवस्थापित करू शकता Kubernetes मध्ये StatefulSets वापरणे. 

स्टेटफुलसेट्स हे समर्पित, पर्सिस्टंट स्टोरेजसह कुबर्नेट्समध्ये स्टेटफुल अॅप्लिकेशन्स चालवण्यासाठी आहेत.

या मार्गदर्शकामध्ये, आम्ही Kubernetes StatefulSets वापरताना शिकण्यासाठी तीन सर्वोत्तम पद्धतींचा समावेश करू.  

पण आधी…

Kubernetes StatefulSet म्हणजे काय?

Kubernetes StatefulSet हे वर्कलोड ऍप्लिकेशन प्रोग्रामिंग इंटरफेस (API) ऑब्जेक्ट आहे जे स्टेटफुल ऍप्लिकेशन्स व्यवस्थापित करण्यासाठी वापरले जाते. 

तुम्ही पॉड्सचा संच तैनात आणि स्केल करण्यासाठी स्टेटफुलसेट वापरू शकता, जे पॉडच्या ऑर्डर आणि विशिष्टतेची हमी देते.  

उपयोजनाप्रमाणेच, कुबर्नेट्स स्टेटफुलसेट पॉड्स व्यवस्थापित करू शकतो एकसमान कंटेनर तपशीलावर आधारित. 

तथापि, डिप्लॉयमेंटच्या विपरीत, स्टेटफुलसेट प्रत्येक पॉडसाठी चिकट ओळख राखू शकतो. पॉड्स एकाच स्पेसमधून तयार केले गेले असले तरी ते अदलाबदल करण्यायोग्य नसतात, याचा अर्थ प्रत्येक पॉडमध्ये एक पर्सिस्टंट आयडेंटिफायर असतो जो तो कोणत्याही रीशेड्युलिंगमध्ये कायम ठेवतो. 

जर तुम्हाला स्टोरेज व्हॉल्यूम्स वापरून वर्कलोडसाठी चिकाटी प्रदान करायची असेल, तर सोल्यूशनचा भाग म्हणून स्टेटफुलसेटचा फायदा घ्या. 

स्टेटफुलसेटमधील वैयक्तिक पॉड्समध्ये त्रुटी असू शकतात, परंतु सक्तीचा पॉड आयडेंटिफायर अयशस्वी झालेल्या नवीन पॉड्सशी विद्यमान व्हॉल्यूम जुळवणे सोपे करू शकतो.  

स्टेटफुलसेटचा एक सामान्य वापर केस आहे जेव्हा तुम्हाला प्राथमिक किंवा दुय्यम सर्व्हर तैनात करण्याची आवश्यकता असते, जसे की डेटाबेस क्लस्टर, जिथे तुम्हाला क्लस्टर सुरू करण्यासाठी प्रत्येक सर्व्हरचे होस्टनाव माहित असणे आवश्यक आहे. 

स्टेटफुलसेटचा आणखी एक सामान्य वापर केस म्हणजे जेव्हा तुम्ही विशिष्ट क्रमाने वर आणि खाली स्केल करता, जसे की जेव्हा तुम्हाला प्राथमिक नोड त्यानंतर दुय्यम नोडने सुरुवात करायची असते. 

जेव्हा आपल्याला आवश्यक असेल तेव्हा स्टेटफुलसेट वापरणे चांगले आहे:

  • स्थिर आणि वेगळ्या नेटवर्क ओळख
  • ऑर्डर केलेले आणि अद्वितीय उपयोजन आणि स्केलिंग
  • तुमच्या सर्व अॅप्लिकेशन शेड्युलिंग आणि रीशेड्युलिंगमध्ये सतत आणि स्थिर स्टोरेज

स्टेटफुलसेट वापरताना टिपा वापरल्या आणि तपासल्या

खाली Kubernetes StatefulSet वापरण्यासाठी काही सर्वोत्तम पद्धती आहेत.

1. स्टेटफुलसेट रिसोर्स तयार करण्यासाठी kubectl लागू कमांड वापरा

कमांड मॅनिफेस्ट फाइल्सचा वापर तुमच्या क्लस्टर्समध्ये रिसोर्सेस तयार करण्यासाठी, अपडेट करण्यासाठी आणि काढण्यासाठी करते. ऑब्जेक्ट कॉन्फिगरेशनची ही एक घोषणात्मक पद्धत आहे जी ऑब्जेक्ट कॉन्फिगरेशन फाइल्समध्ये बदल विलीन न करता थेट ऑब्जेक्ट्ससाठी बनवलेले राइट राखून ठेवते. 

लक्षात ठेवा क्लस्टर वापरताना स्टोरेज क्लास तयार करा डीफॉल्ट स्टोरेजक्लास वापरत असल्याने विंडोज सर्व्हर नोड पूलसह ext4 फाइल सिस्टम प्रकार म्हणून (जे फक्त लिनक्स कंटेनरसाठी कार्य करते).

तसेच, वापरा NTFS तुम्ही कॉम्प्युट इंजिन पर्सिस्टंट डिस्क वापरत असल्यास फाइल स्टोरेज प्रकार म्हणून. 

तुम्ही परिभाषित केलेला StorageClass वापरून स्टेटफुलसेट मॅनिफेस्ट तयार करा. 

उदाहरणार्थ, तुमचा मॅनिफेस्ट चार तयार करू शकतो पर्सिस्टंट व्हॉल्यूमक्लेम आणि पर्सिस्टंट व्हॉल्यूम चार संगणक इंजिन पर्सिस्टंट डिस्क्सचे प्रतिनिधित्व करणाऱ्या जोड्या. स्टेटफुलसेटमधील प्रत्येक पॉड एकच पर्सिस्टंट डिस्क वापरतो. 

याव्यतिरिक्त, विंडोज सर्व्हर नोड्सवर तुमचे पॉड योग्यरित्या शेड्यूल केले आहेत याची खात्री करण्यासाठी तुमच्या पॉड स्पेसिफिकेशनमध्ये नोड सिलेक्टर समाविष्ट करा. 

शेवटी, हा आदेश चालवून स्टेटफुलसेट संसाधन तयार करा: 

kubectl लागू करा -f STATEFULSET_FILE

बदलण्याची आठवण ठेवा STATEFULSET_FILE मॅनिफेस्ट फाइल नावासह. 

2. स्टेटफुल सेट अपडेट करण्याच्या विविध पद्धती जाणून घ्या

तुम्ही स्टेटफुल सेट्स विविध प्रकारे, घोषणात्मक पद्धतीने अपडेट करू शकता kubectl लागू करा असल्याचे सर्वात सामान्य. 

उदाहरणार्थ, तुम्ही Google Kubernetes इंजिन वापरत असल्यास आणि स्टेटफुलसेट तुमच्या पसंतीच्या संपादकामध्ये किंवा थेट तुमच्या शेलमधून अपडेट करू इच्छिता, वापरा kubectl संपादन. तुम्ही क्लाउड कन्सोलमधील GKW वर्कलोड्स मेनूवर YAML संपादक देखील निवडू शकता. 

तसेच, तुम्ही पॉड्स स्पेसिफिकेशन (स्टेटफुलसेट रिसोर्ससाठी), जसे की त्याचे कॉन्फिगरेशन, इमेज किंवा रिसोर्स विनंत्या आणि वापरासाठी अपडेट रोल आउट करू शकता.  

स्टेटफुलसेट वापरून अपडेट करताना अपडेट केलेली किंवा नवीन मॅनिफेस्ट फाइल लागू करा kubectl लागू करा. स्टेटफुलसेटमध्ये विविध बदल करताना ते उपयुक्त ठरते, जसे की तुम्ही नवीन अॅप्लिकेशन आवृत्त्या मोजता किंवा निर्दिष्ट करता.  

टीप: वापरणे kubectl लागू करा संसाधन अद्यतनित करणे केवळ तेव्हाच कार्य करते जेव्हा संसाधन वापरून तयार केले जाते kubectl तयार करा - -सेव्ह-कॉन्फिगरेशन or kubectl लागू करा.

तुम्ही स्टेटफुलसेट देखील वापरू शकता अद्यतन धोरण फील्ड, जे तुम्हाला स्टेटफुलसेटमधील पॉड्ससाठी संसाधन विनंत्या, लेबल्स, मर्यादा, कंटेनर आणि भाष्यांसाठी स्वयंचलित रोलिंग अद्यतने सेट आणि अक्षम करू देते.  

तुमचा स्टेटफुल सेट अपडेट करण्याच्या विविध पद्धती जाणून घ्या आणि तुमच्यासाठी कोणते सर्वोत्तम काम करते ते ठरवा. 

3. स्टेटफुलसेट कधी वापरायचे ते ठरवा

अशी उदाहरणे आहेत जेव्हा तुम्ही डिप्लॉयमेंट्सपेक्षा कुबर्नेट्स स्टेटफुलसेट्स वापरणे चांगले.

यापैकी काही परिस्थितींमध्ये पुढील गोष्टींचा समावेश असू शकतो.

  • स्टेटफुल सेट कमी करणे किंवा हटवणे. स्टेटफुल सेट कमी करताना किंवा हटवताना तुमचा डेटा सुरक्षित राहू शकतो कारण असे केल्याने स्टेटफुल अॅपशी संबंधित व्हॉल्यूम हटवले जाणार नाहीत. 

सर्व संबंधित स्टेटफुलसेट संसाधने स्वयंचलितपणे शुद्ध करण्यापेक्षा हे सहसा अधिक मौल्यवान असते. 

उदाहरणार्थ, जर MySQL पॉड रीस्टार्ट झाला किंवा हटवला गेला, तर तुम्ही त्याच व्हॉल्यूममध्ये डेटा ऍक्सेस करू शकता. 

  • MySQL डेटाबेस तैनात आणि स्केल करणे. समजा तुम्ही K8s क्लस्टरमध्ये MySQL डेटाबेस तैनात केला आहे आणि तो तीन प्रतिकृतींमध्ये वाढवला आहे. फ्रंटएंड अॅप डेटा वाचण्यासाठी आणि लिहिण्यासाठी तुमच्या तैनात केलेल्या MySQL क्लस्टरमध्ये प्रवेश करू इच्छित आहे.  

रीड रिक्वेस्ट तीन पॉड्सवर फॉरवर्ड केली जाते, पण राइट रिक्वेस्ट फक्त प्राथमिक किंवा पहिल्या पॉडला फॉरवर्ड केली जाते. त्यानंतर, डेटा इतर पॉड्ससह समक्रमित केला जातो. 

जेव्हा तुम्ही स्टेटफुलसेट वापरता तेव्हा हे सर्व शक्य होते. 

Kubernetes StatefulSet मर्यादा

Kubernetes StatefulSet वापरण्याच्या सर्वोत्तम पद्धती जाणून घेणे महत्त्वाचे असले तरी, त्याच्या मर्यादा समजून घेणे तितकेच महत्त्वाचे आहे, ज्यात खालील गोष्टींचा समावेश आहे. 

  • दिलेल्या पॉडचे स्टोरेज प्रशासकाद्वारे पूर्व-तरतुदी केलेले असले पाहिजे किंवा पर्सिस्टंट व्हॉल्यूम प्रोव्हिजनरद्वारे तरतूद केलेले असावे (विनंती केलेल्या आधारावर साठवण वर्ग).  
  • स्टेटफुलसेट हटवल्यावर पॉड टर्मिनेशनची हमी स्टेटफुलसेट देत नाही. स्टेटफुलसेट हटवताना ग्रेसफुली आणि ऑर्डर केलेले पॉड्स टर्मिनेशन साध्य करण्यासाठी, डिलीट करण्यापूर्वी तुम्ही स्टेटफुलसेट शून्यावर आणू शकता. 
  • स्टेटफुलसेट्सना पॉड्सच्या नेटवर्क ओळखीसाठी जबाबदार असलेली हेडलेस सेवा आवश्यक आहे. तुम्हाला ही सेवा तयार करावी लागेल. 
  • जेव्हा तुम्ही डीफॉल्ट पॉड मॅनेजमेंट पॉलिसी (ऑर्डर केली तयार). 

कुबेरनेट्स स्टेटफुलचा फायदा घ्या योग्य मार्ग सेट करा

कुबर्नेट्सवर वितरित प्रणाली आणि स्टेटफुल ऍप्लिकेशन्सचे व्यवस्थापन करणे हे एक व्यापक आणि जटिल उपक्रम असू शकते, परंतु ते रॉकेट सायन्स नाही. 

Kubernetes मधील स्टेटफुल ऍप्लिकेशन्स व्यवस्थापित आणि चालवणे अधिक प्रभावी आणि कार्यक्षम करण्यासाठी स्टेटफुलसेट वापरताना मूलभूत गोष्टींसह प्रारंभ करा आणि सर्वोत्तम पद्धतींचे अनुसरण करा. 

लेखक बद्दल 

कायरी मॅटोस


email "ईमेल": "ईमेल पत्ता अवैध", "url": "वेबसाइट पत्ता अवैध", "आवश्यक": "आवश्यक फील्ड गहाळ"}