जुन 10, 2022

Kubernetes StatefulSet प्रयोग गर्दा तपाईंले जान्नै पर्ने ३ उत्तम अभ्यासहरू

कुनै पनि प्रकारको क्लस्टर गरिएको वातावरण सिर्जना गर्दा लगातार तैनाती र स्केलिंगलाई अनुमति दिन धेरै काम समावेश हुन्छ। 

राम्रो समाचार छ तपाईं स्केलमा कन्टेनरहरू व्यवस्थापन गर्न सक्नुहुन्छ Kubernetes मा StatefulSets प्रयोग गर्दै। 

स्टेटफुलसेटहरू समर्पित, निरन्तर भण्डारणको साथ Kubernetes भित्र स्टेटफुल एप्लिकेसनहरू चलाउनको लागि हो।

यस गाइडमा, हामी Kubernetes StatefulSets प्रयोग गर्दा सिक्नको लागि तीनवटा उत्कृष्ट अभ्यासहरू समावेश गर्नेछौं।  

तर पहिला…

Kubernetes StatefulSet के हो?

Kubernetes StatefulSet स्टेटफुल एप्लिकेसनहरू प्रबन्ध गर्न प्रयोग गरिने वर्कलोड एप्लिकेसन प्रोग्रामिङ इन्टरफेस (API) वस्तु हो। 

तपाईंले Pods को सेट डिप्लोय र मापन गर्न StatefulSets प्रयोग गर्न सक्नुहुन्छ, जसले Pod को अर्डर र विशिष्टताको ग्यारेन्टी प्रदान गर्दछ।  

परिनियोजन जस्तै, Kubernetes StatefulSet ले पोडहरू व्यवस्थापन गर्न सक्छ एक समान कन्टेनर विनिर्देशमा आधारित। 

यद्यपि, डिप्लोइमेन्टको विपरीत, स्टेटफुलसेटले प्रत्येक पोडको लागि टाँसिने पहिचान कायम राख्न सक्छ। जब पोडहरू एउटै विशिष्टताबाट सिर्जना गरिएका हुन्छन्, तिनीहरू आदानप्रदान गर्न योग्य छैनन्, जसको मतलब प्रत्येक पोडसँग एक स्थायी पहिचानकर्ता हुन्छ जुन यसले कुनै पनि पुन: तालिकामा राख्छ। 

यदि तपाइँ भण्डारण भोल्युमहरू प्रयोग गरेर कार्यभारको लागि दृढता प्रदान गर्न चाहनुहुन्छ भने, समाधानको भागको रूपमा स्टेटफुलसेटको लाभ उठाउनुहोस्। 

जबकि स्टेटफुलसेट भित्रका व्यक्तिगत पोडहरू त्रुटिहरूको खतरामा पर्न सक्छन्, निरन्तर पोड पहिचानकर्ताले अवस्थित भोल्युमहरूलाई नयाँ पोडहरूसँग मिलाउन सजिलो बनाउन सक्छ जुन असफल भएकाहरूलाई प्रतिस्थापन गर्दछ।  

StatefulSet को एक सामान्य प्रयोग केस हो जब तपाइँ प्राथमिक वा माध्यमिक सर्भरहरू प्रयोग गर्न आवश्यक हुन्छ, जस्तै डाटाबेस क्लस्टर, जहाँ तपाइँ क्लस्टर सुरु गर्न प्रत्येक सर्भरको होस्टनाम जान्नु पर्छ। 

StatefulSet को अर्को सामान्य प्रयोग केस हो जब तपाइँ एक विशेष क्रममा मापन माथि र तल गर्नुहुन्छ, जस्तै जब तपाइँ माध्यमिक नोड पछि प्राथमिक नोड संग सुरु गर्न चाहनुहुन्छ। 

तपाईलाई आवश्यक पर्दा StatefulSet प्रयोग गर्नु उत्तम हुन्छ:

  • स्थिर र फरक नेटवर्क पहिचान
  • अर्डर गरिएको र अद्वितीय तैनाती र स्केलिंग
  • तपाईको सबै एप्लिकेसन शेड्युलिङ र रिसेड्युलिङमा निरन्तर र स्थिर भण्डारण

StatefulSet प्रयोग गर्दा प्रयास र परीक्षण सुझावहरू

तल Kubernetes StatefulSet प्रयोग गर्नका लागि केही उत्कृष्ट अभ्यासहरू छन्।

1. स्टेटफुलसेट रिसोर्स सिर्जना गर्न कमाण्ड लागू गर्नुहोस्

आदेशले तपाईंको क्लस्टरहरू भित्र स्रोतहरू सिर्जना गर्न, अद्यावधिक गर्न र हटाउन manifest फाइलहरू प्रयोग गर्दछ। यो वस्तु कन्फिगरेसनको घोषणात्मक विधि हो जसले वस्तु कन्फिगरेसन फाइलहरूमा परिवर्तनहरू मर्ज नगरी लाइभ वस्तुहरूमा बनाइएका लेखहरूलाई कायम राख्छ। 

सम्झनुहोस् क्लस्टरहरू प्रयोग गर्दा एउटा StorageClass सिर्जना गर्नुहोस् विन्डोज सर्भर नोड पूलहरूसँग पूर्वनिर्धारित भण्डारण क्लासले प्रयोग गर्दछ ext4 फाइल प्रणाली प्रकारको रूपमा (जसले लिनक्स कन्टेनरहरूको लागि मात्र काम गर्दछ)।

साथै, प्रयोग गर्नुहोस् NTFS यदि तपाइँ कम्प्युट इन्जिन पर्सिस्टेन्ट डिस्क प्रयोग गर्नुहुन्छ भने फाइल भण्डारण प्रकारको रूपमा। 

तपाईंले परिभाषित गर्नुभएको StorageClass प्रयोग गरेर स्टेटफुलसेट म्यानिफेस्ट सिर्जना गर्नुहोस्। 

उदाहरण को लागी, तपाईको manifest ले चार बनाउन सक्छ पर्सिस्टेन्ट भोल्युम दाबीपर्सिस्टेन्ट भोल्युम चार कम्प्यूटर इन्जिन लगातार डिस्क प्रतिनिधित्व जोडी। स्टेटफुलसेट भित्रको प्रत्येक पोडले एकल पर्सिस्टेन्ट डिस्क खपत गर्छ। 

थप रूपमा, तपाइँको पोडहरू विन्डोज सर्भर नोडहरूमा ठीकसँग अनुसूचित छन् भनेर सुनिश्चित गर्न तपाइँको पोड विनिर्देशमा नोड चयनकर्ता समावेश गर्नुहोस्। 

अन्तमा, यो आदेश चलाएर स्टेटफुलसेट स्रोत सिर्जना गर्नुहोस्: 

kubectl लागू -f STATEFULSET_FILE

प्रतिस्थापन गर्न सम्झनुहोस् STATEFULSET_FILE manifest फाइल नाम संग। 

2. स्टेटफुलसेट अपडेट गर्ने विभिन्न तरिकाहरू जान्नुहोस्

तपाईं घोषणात्मक विधिको साथ, विभिन्न तरिकामा स्टेटफुलसेटहरू अद्यावधिक गर्न सक्नुहुन्छ kubectl लागू गर्नुहोस् हुनु सबैभन्दा सामान्य। 

उदाहरण को रुपमा, यदि तपाइँ Google Kubernetes इन्जिन प्रयोग गर्नुहुन्छ भने र तपाईंको मनपर्ने सम्पादकमा वा सीधा तपाईंको शेलबाट StatefulSet अपडेट गर्न चाहनुहुन्छ, प्रयोग गर्नुहोस् kubectl सम्पादन। तपाईंले क्लाउड कन्सोल भित्रको GKW Workloads मेनुमा YAML सम्पादक पनि रोज्न सक्नुहुन्छ। 

साथै, तपाईले पोड्स स्पेसिफिकेशन (स्टेटफुलसेट रिसोर्सको लागि) मा अपडेटहरू रोल आउट गर्न सक्नुहुन्छ, जस्तै यसको कन्फिगरेसन, छवि, वा स्रोत अनुरोध र प्रयोग।  

स्टेटफुलसेट प्रयोग गरेर अद्यावधिक गर्दा अद्यावधिक वा नयाँ प्रकट फाइल लागू गर्नुहोस् kubectl लागू गर्नुहोस्। स्टेटफुलसेटमा विभिन्न परिवर्तनहरू गर्दा यो उपयोगी हुन्छ, जस्तै तपाईंले नयाँ एप संस्करणहरू मापन वा निर्दिष्ट गर्दा।  

नोट: प्रयोग गर्दै kubectl लागू गर्नुहोस् संसाधन अद्यावधिक गर्न मात्र काम गर्दछ जब संसाधन प्रयोग गरी सिर्जना गरिएको थियो kubectl सिर्जना - बचत-कन्फिग or kubectl लागू गर्नुहोस्.

तपाइँ स्टेटफुलसेटको पनि प्रयोग गर्न सक्नुहुन्छ अपडेट रणनीति फिल्ड, जसले तपाईंलाई स्टेटफुलसेट भित्र पोडहरूका लागि स्रोत अनुरोधहरू, लेबलहरू, सीमाहरू, कन्टेनरहरू र एनोटेसनहरूका लागि स्वचालित रोलिङ अद्यावधिकहरू सेट अप र असक्षम गर्न दिन्छ।  

आफ्नो StatefulSet अपडेट गर्ने बिभिन्न विधिहरू जान्नुहोस् र तपाईंको लागि कुन राम्रो काम गर्छ भनेर निर्धारण गर्नुहोस्। 

3. StatefulSets कहिले प्रयोग गर्ने निर्धारण गर्नुहोस्

त्यहाँ उदाहरणहरू छन् जब तपाईं डिप्लोयमेन्टहरू भन्दा Kubernetes StatefulSets प्रयोग गरेर राम्रो हुनुहुन्छ।

यी मध्ये केही अवस्थाहरूले निम्न समावेश गर्न सक्छन्।

  • स्टेटफुलसेटलाई घटाउँदै वा मेटाउँदै। स्टेटफुलसेटलाई घटाउँदा वा मेटाउँदा तपाईंको डाटा सुरक्षित रहन सक्छ किनभने त्यसो गर्दा स्टेटफुल एपसँग सम्बन्धित भोल्युमहरू मेटिने छैन। 

यो सामान्यतया सबै सम्बन्धित StatefulSet स्रोतहरू स्वचालित रूपमा शुद्ध गर्नु भन्दा बढी मूल्यवान हुन्छ। 

उदाहरण को लागी, यदि MySQL Pod पुन: सुरु हुन्छ वा मेटिन्छ भने, तपाइँ उही भोल्युम मा डाटा पहुँच गर्न सक्नुहुन्छ। 

  • एक MySQL डाटाबेस तैनाती र मापन गर्दै। मानौं कि तपाईंले K8s क्लस्टर भित्र MySQL डाटाबेस डिप्लोय गर्नुभयो र यसलाई तीन प्रतिकृतिहरूमा मापन गर्नुभयो। एक फ्रन्टएन्ड एपले डेटा पढ्न र लेख्नको लागि तपाइँको तैनात गरिएको MySQL क्लस्टर पहुँच गर्न चाहन्छ।  

पढ्ने अनुरोध तीन पोडहरूमा फर्वार्ड गरिएको छ, तर लेख्न अनुरोध मात्र प्राथमिक वा पहिलो पोडमा फर्वार्ड हुन्छ। त्यसपछि, डाटा अन्य पोडहरूसँग सिंक हुन्छ। 

यो सबै सम्भव छ जब तपाइँ स्टेटफुलसेटहरू प्रयोग गर्नुहुन्छ। 

Kubernetes StatefulSet सीमाहरू

Kubernetes StatefulSet प्रयोग गर्ने उत्कृष्ट अभ्यासहरू जान्न महत्त्वपूर्ण हुँदा, यसको सीमितताहरू बुझ्नु त्यति नै महत्त्वपूर्ण छ, जसमा निम्न समावेश छन्। 

  • दिइएको पोडको भण्डारण व्यवस्थापक द्वारा पूर्व-प्रविजन वा Persistent Volume Provisioner द्वारा प्रावधान गरिएको हुनुपर्छ (अनुरोध गरिएको आधारमा भण्डारण वर्ग).  
  • स्टेटफुलसेटहरू मेटिएपछि स्टेटफुलसेटहरूले पोड समाप्तिको लागि ग्यारेन्टीहरू प्रदान गर्दैन। स्टेटफुलसेट मेटाउँदा आकर्षक र अर्डर गरिएको पोड समाप्ति प्राप्त गर्न, तपाईंले मेटाउनु अघि StatefulSet लाई शून्यमा मापन गर्न सक्नुहुन्छ। 
  • StatefulSets लाई Pods नेटवर्क पहिचानको लागि जिम्मेवार हेडलेस सेवा चाहिन्छ। तपाईंले यो सेवा सिर्जना गर्न आवश्यक छ। 
  • तपाईंले पूर्वनिर्धारित पोड व्यवस्थापन नीति (आदेश तयार). 

कुबर्नेट्स स्टेटफुलको लाभ उठाउनुहोस् सही तरिका सेट गर्नुहोस्

Kubernetes मा वितरण प्रणाली र राज्य अनुप्रयोगहरू प्रशासन एक व्यापक र जटिल उपक्रम हुन सक्छ, तर यो रकेट विज्ञान होइन। 

Kubernetes मा स्टेटफुल एप्लिकेसनहरू प्रबन्धन र चलाउन थप प्रभावकारी र प्रभावकारी बनाउन StatefulSets प्रयोग गर्दा आधारभूत कुराहरूबाट सुरु गर्नुहोस् र उत्कृष्ट अभ्यासहरू पालना गर्नुहोस्। 

लेखक बारे 

Kyrie Mattos


email "ईमेल": "ईमेल ठेगाना अवैध", "url": "वेबसाइट ठेगाना अवैध", "आवाश्यक": "आवश्यक फिल्ड हराइरहेको छ"}