Istio के साथ सर्विस मेष में माहिर बनें

हमारे Istio की गहराई में उतरकर माइक्रोसर्विसेज की शक्ति को मुक्त करें।

Istio के साथ सर्विस मेष आर्किटेक्चर में महारत हासिल करें

1. परिचय

सर्विस मेष आर्किटेक्चर के जादू को उजागर करें और देखें कि यह आपके वितरित सिस्टम को कैसे सुपरचार्ज करता है।

Istio, सर्विस मेष का सुपरस्टार, में गहराई से उतरें और जानें कि यह आपके क्यूबेरनेट्स क्लस्टर को कैसे संपूर्णता के साथ ऑर्केस्ट्रेट करता है।

2. सर्विस मेष क्या है?

मोनोलिथिक अनुप्रयोग छोटे, स्वतंत्र सेवाओं में विकसित हो गए हैं। यह बदलाव क्लाउड-नेटिव कंप्यूटिंग और माइक्रोसर्विस आर्किटेक्चर के साथ भारी लोकप्रियता हासिल की। Docker और क्यूबेरनेट्स जैसे उपकरणों ने इस प्रवृत्ति को तेज किया।

क्यूबेरनेट्स जैसे प्लेटफार्मों पर माइक्रोसर्विसेज कई लाभ प्रदान करती हैं, लेकिन वे जटिलताएं भी लाती हैं। इन वितरित सेवाओं के बीच संचार का प्रबंधन करने के लिए खोज, राउटिंग, पुनः प्रयास और फ़ेलओवर पर ध्यान देने की आवश्यकता होती है।

अतिरिक्त चुनौतियों में सुरक्षा और अवलोकनशीलता शामिल हैं।

मशीन A
सेवा A
ट्रैफ़िक प्रबंधन
सुरक्षा
अवलोकनशीलता
मशीन B
सेवा B
ट्रैफ़िक प्रबंधन
सुरक्षा
अवलोकनशीलता

प्रत्येक सेवा में संचार क्षमताओं का निर्माण करना समय-समय पर थका देने वाला होता है, खासकर जब सेवा परिदृश्य बढ़ता है। यहीं पर सर्विस मेष चमकती है। यह एक वितरित सिस्टम के भीतर सभी सेवा से सेवा संचार को संभालती है।

सर्विस मेष यह नेटवर्क प्रॉक्सी का उपयोग करके करती है। सेवाओं के बीच अनुरोध इन प्रॉक्सियों के माध्यम से रूट होते हैं, जो सेवाओं के बाहर अवसंरचना परत में निवास करते हैं:

मशीन A
प्रॉक्सी
सेवा A
ट्रैफ़िक प्रबंधन
सुरक्षा
अवलोकनशीलता
मशीन B
प्रॉक्सी
सेवा B
ट्रैफ़िक प्रबंधन
सुरक्षा
अवलोकनशीलता

ये प्रॉक्सी सेवाओं के लिए एक मेष नेटवर्क बनाते हैं, इसी कारण इसे सर्विस मेष कहा जाता है। सर्विस मेष सेवा से सेवा संचार के हर पहलू को नियंत्रित करता है, जिससे यह वितरित कंप्यूटिंग के आठ भ्रांतियों को संबोधित कर सकता है।

3. सर्विस मेष सुपरपॉवर्स

एक सर्विस मेष के साथ अपनी सेवाओं की पूरी क्षमता को उजागर करें! जानें कि यह जादुई उपकरण आपके अनुप्रयोग परिदृश्य को कैसे बदल सकता है।

आइए जादू को तीन मुख्य क्षमताओं में तोड़ें: ट्रैफ़िक जादूगरी, लोहे की सुरक्षा, और क्रिस्टल-क्लियर दृश्यता।

3.1. ट्रैफ़िक जादूगरी

एक सर्विस मेष आपका अंतिम ट्रैफ़िक पुलिस है, जो सेवा इंटरएक्शन्स को सटीकता से निर्देशित करता है। डायनेमिक राउटिंग, स्मार्ट डिस्कवरी, और ट्रैफ़िक शैडोइंग और स्प्लिटिंग जैसे अविश्वसनीय फीचर्स का आनंद लें ताकि कैनरी रिलीज और A/B परीक्षण प्रयोगों को सुचारू रूप से किया जा सके।

अविश्वसनीय कनेक्शनों को अलविदा कहें! एक सर्विस मेष आपकी सेवाओं को विश्वसनीयता के आरामदायक कंबल में लपेटता है, जो पुनः प्रयास, टाइमआउट, दर सीमा, और सर्किट ब्रेकरों की पेशकश करता है ताकि आपके अनुप्रयोगों को अराजकता से सुरक्षित रखा जा सके।

3.2. लोहे की सुरक्षा

अपनी सेवाओं की रक्षा एक अभेद्य किले के साथ करें! एक सर्विस मेष सभी संचारों को मजबूत MTLS के साथ एन्क्रिप्ट करती है, कड़ी प्रमाणीकरण के साथ पहचान की पुष्टि करती है, और अंतिम सुरक्षा के लिए पहुंच नियम लागू करती है।

छिपे हुए सुरक्षा सुपरपॉवर्स की खोज करें! सेवाओं को अलग करें, ऑडिटिंग के लिए हर कदम पर नज़र रखें, और एक सर्विस मेष के साथ अपने अनुप्रयोग के चारों ओर एक सुरक्षित परिधि बनाएं।

3.3. क्रिस्टल-क्लियर दृश्यता

अपने वितरित सिस्टम की जटिलताओं को आसानी से नेविगेट करें! एक सर्विस मेष आपके अनुप्रयोग के आंतरिक कार्यों में बेहतरीन दृश्यता प्रदान करती है, जिसमें वितरित ट्रेसिंग शामिल है।

मूल्यवान अंतर्दृष्टि का पता लगाएं, जिसमें मीट्रिक, लॉग, और प्रदर्शन डेटा का एक समृद्ध खजाना शामिल है। एक सर्विस मेष के साथ अपने सेवाओं का अनुकूलन करें और पेशेवर की तरह समस्याओं का समाधान करें।

4. Istio का खुलासा

Istio, IBM, Google, और Lyft द्वारा बनाई गई एक ओपन-सोर्स सर्विस मेष, आपके वितरित अनुप्रयोगों को ट्रैफ़िक प्रबंधन, सुरक्षा, और प्रदर्शन अंतर्दृष्टि के साथ अदृश्य रूप से समृद्ध करती है।

Istio को ऑन-प्रेम, क्लाउड, क्यूबेरनेट्स में या वर्चुअल मशीनों पर लचीलापन से तैनात किया जा सकता है, यह क्यूबेरनेट्स पर माइक्रोसर्विसेज के साथ शानदार है। यद्यपि यह प्लेटफ़ॉर्म-निषेधक है, लेकिन यह कंटेनराइज्ड वातावरण के लिए स्वाभाविक रूप से उपयुक्त है।

Istio के मूल में, Envoy प्रॉक्सी को प्रत्येक माइक्रोसर्विस के साथ साइडकार के रूप में तैनात किया जाता है:

पॉड A
सेवा A
इनग्रेस ट्रैफ़िक
Envoy प्रॉक्सी
पॉड A
सेवा A
मेष ट्रैफ़िक
Envoy प्रॉक्सी
एग्रेस ट्रैफ़िक
डेटा प्लेन

यह प्रॉक्सी नेटवर्क Istio का डेटा plane बनाता है, जिसे नियंत्रण plane द्वारा ऑर्केस्ट्रेट किया जाता है:

पॉड A
सेवा A
इनग्रेस ट्रैफ़िक
Envoy प्रॉक्सी
पॉड A
सेवा A
मेष ट्रैफ़िक
Envoy प्रॉक्सी
एग्रेस ट्रैफ़िक
डेटा प्लेन
Istiod
पायलट
सिटाडेल
गैल्ली
कंट्रोल प्लेन

कंट्रोल प्लेन, Istio का मास्टरमाइंड, Envoy प्रॉक्सियों को खोज, कॉन्फ़िगरेशन, और प्रमाणपत्र प्रबंधन के साथ सक्षम करता है।

Envoy प्रॉक्सियों के कई इंटरकनेक्टेड माइक्रोसर्विसेज के साथ Istio की क्षमता को अनलॉक करें, जहां साइडकार प्रॉक्सियां एक मजबूत सर्विस मेष अवसंरचना बुनती हैं:

istio नियंत्रण प्लेन
Envoy
Envoy
Envoy
Envoy
Envoy
Envoy
Envoy
Envoy
Envoy
Envoy
Envoy
Envoy

Istio की अनुकूलता बाहरी लॉगिंग, टेलीमेट्री, और नीति प्रणालियों के साथ सहज एकीकरण के माध्यम से उजागर होती है।

5. Istio के निर्माण खंडों का अनावरण

Istio की आर्किटेक्चर एक गतिशील युगल है: डेटा प्लेन और नियंत्रण प्लेन। एक साथ, वे Istio की क्षमताओं के पीछे जादू का संचालन करते हैं। आइए इस अद्वितीय प्लेटफार्म को शक्ति देने वाले Istio के मूल घटकों में गोता लगाएँ।

Istio के मूल घटकों के जटिल विवरणों का अन्वेषण करने के लिए तैयार हो जाएं।

5.1. डेटा प्लेन: Envoy का केंद्र

Istio का डेटा प्लेन दरअसल Envoy प्रॉक्सी का एक मजबूत संस्करण है। यह ओपन-सोर्स चमत्कार नेटवर्क जटिलताओं को संभालता है, अनुप्रयोगों को उनके मुख्य व्यवसाय पर ध्यान केंद्रित करने की स्वतंत्रता देता है। अनुप्रयोग सहजता से बातचीत करते हैं, जटिल नेटवर्क अवसंरचना से अनजान।

Istio की असली विशेषताएँ वास्तव में Envoy की अंतर्निहित क्षमताओं से विरासत में मिलती हैं:

Istio की कई प्रमुख विशेषताएँ वास्तव में Envoy की अंतर्निहित क्षमताओं से विरासत में मिली सुपरपॉवर्स हैं:

  • ट्रैफ़िक नियंत्रण: Envoy HTTP, gRPC, WebSocket, और TCP ट्रैफ़िक पर सूक्ष्म नियंत्रण रखता है, इसे सटीकता से रूट करता है।
  • नेटवर्क दृढ़ता: अंतर्निहित स्वचालित पुनः प्रयास, सर्किट ब्रेकिंग, और दोष इंजेक्शन नेटवर्क विश्वसनीयता सुनिश्चित करते हैं।
  • सुरक्षा: अपनी संचार को मजबूत सुरक्षा नीतियों, पहुंच नियंत्रण, और दर सीमा के साथ सुरक्षित रखें।

Envoy की असली क्षमता तब चमकती है जब इसे Istio के साथ जोड़ा जाता है। इसकी विस्तारणीयता, WebAssembly द्वारा समर्थित, कस्टम नीति प्रवर्तन और टेलीमेट्री के लिए एक गेम-चेंजर है।

5.2. नियंत्रण प्लेन: Istiod का मुख्य संगीतकार

Istiod से मिलें, Istio के नियंत्रण प्लेन ऑर्केस्ट्रा का कंडक्टर। यह मास्टर उच्च-स्तरीय रूटिंग नियमों और ट्रैफ़िक प्रबंधन निर्देशों को Envoy के अनुकूल कॉन्फ़िगरेशन में परिवर्तित करता है, जिन्हें साइडकारों में निर्बाध रूप से वितरित किया जाता है।

Istio की पहले की आर्किटेक्चर को याद करें जिसमें इसके व्यक्तिगत घटक थे? खैर, चीजों को सरल बनाने के लिए, इन घटकों को एकीकृत Istiod में मिला दिया गया। लेकिन चिंता न करें, मुख्य कार्यक्षमता बरकरार है।

Istiod के मूल में, यह अपने पूर्ववर्तियों के समान कोड और APIs का उपयोग करता है। उदाहरण के लिए, पायलट सेवा खोज का maestro बना हुआ है, प्लेटफॉर्म-विशिष्ट विवरणों को एक सार्वभौमिक भाषा में अनुवादित करता है जिसे साइडकार द्वारा समझा जा सकता है। यह लचीलापन Istio को क्यूबेरनेट्स और वर्चुअल मशीनों जैसे विविध वातावरणों के साथ सामंजस्य स्थापित करने की अनुमति देता है।

Istiod सुरक्षा की जिम्मेदारी भी लेता है, अपनी अंतर्निहित पहचान और प्रमाणपत्र प्रबंधन प्रणाली के साथ मजबूत सेवा से सेवा और अंतिम उपयोगकर्ता प्रमाणीकरण स्थापित करता है। सेवा पहचान के आधार पर सूक्ष्म सुरक्षा नीतियों को लागू करना आसान बनाता है। इसके अतिरिक्त, Istiod एक विश्वसनीय प्रमाणपत्र प्राधिकरण (CA) के रूप में कार्य करता है, सेवाओं के बीच संचार को सुरक्षित करने के लिए म्यूचुअल TLS (MTLS) का उपयोग करके प्रमाणपत्र जारी करता है।

6. Istio कैसे काम करता है

हमने सर्विस मेष की सामान्य विशेषताओं का अन्वेषण किया और Istio की आर्किटेक्चर और मूल घटकों को dissect किया। अब, आइए जानें कि Istio इन विशेषताओं को अपने मूल घटकों का उपयोग करके कैसे प्रदान करता है।

हम पहले की तरह ही विशेषता श्रेणियों की फिर से समीक्षा करेंगे।

6.1. ट्रैफ़िक प्रबंधन

Istio का ट्रैफ़िक प्रबंधन API सर्विस मेष ट्रैफ़िक पर सूक्ष्म नियंत्रण प्रदान करता है। इन APIs का उपयोग करके ट्रैफ़िक कॉन्फ़िगरेशन को अनुकूलित करें और क्यूबेरनेट्स कस्टम रिसोर्स परिभाषाओं (CRDs) के साथ API संसाधनों को परिभाषित करें।

सेवा A
सेवा B
गंतव्य नियम - v1
75%
गंतव्य नियम - v2
25%
सेवा B- v1
सेवा B- v2

एक आभासी सेवा यह निर्धारित करती है कि Istio मेष में किसी सेवा को अनुरोध कैसे रूट किया जाता है। इसमें एक या अधिक रूटिंग नियम शामिल हैं जो अनुक्रम में मूल्यांकित होते हैं। आभासी सेवा राउटिंग के बाद, गंतव्य नियम लागू होते हैं ताकि गंतव्य के लिए ट्रैफ़िक को नियंत्रित किया जा सके।

6.2. सुरक्षा

Istio की सुरक्षा नींव प्रत्येक सेवा के लिए मजबूत पहचान है। Istio एजेंट प्रत्येक Envoy प्रॉक्सी के साथ मिलकर istiod के साथ कुंजी और प्रमाणपत्र रोटेशन को स्वचालित करने में सहयोग करते हैं:

सेवा
Istio एजेंट
प्रमाणपत्र
हस्ताक्षरित अनुरोध
हस्ताक्षरित
प्रमाणपत्र
Envoy प्रॉक्सी
प्रमाणपत्र प्राधिकरण
Istio
प्रमाणीकरण नीति
अधिकार नीति

Istio दो प्रमाणीकरण प्रकारों का समर्थन करता है: पीयर प्रमाणीकरण और अनुरोध प्रमाणीकरण। पीयर प्रमाणीकरण Istio के म्यूचुअल TLS समाधान के साथ सेवा से सेवा संचार को सुरक्षित करता है। अनुरोध प्रमाणीकरण JSON वेब टोकन (JWT) मान्यकरण के माध्यम से अंत-उपयोगकर्ता प्रमाणीकरण को संभालता है।

Istio प्रमाणीकरण नीतियों को लागू करके सेवा पहुंच नियंत्रण लागू करता है। ये नीतियां Envoy प्रॉक्सी में इनबाउंड ट्रैफ़िक को नियंत्रित करती हैं, जो मेष, नेमस्पेस, और सेवा स्तरों पर पहुंच नियंत्रण की अनुमति देती हैं।

6.3. अवलोकनशीलता

Istio सर्विस संचार के लिए सभी टेलीमेट्री, जिसमें मीट्रिक, वितरित ट्रेस और पहुंच लॉग शामिल हैं, उत्पन्न करता है। यह टेलीमेट्री प्रॉक्सी-स्तरीय, सेवा-उन्मुख, और नियंत्रण_plane मीट्रिक को कवर करती है।

पहले, मिक्सर Istio के टेलीमेट्री आर्किटेक्चर में केंद्रीय घटक था। हालाँकि, टेलीमेट्री v2 ने मिक्सर की सुविधाओं को Envoy प्रॉक्सी प्लगइन्स के साथ बदल दिया:

प्रोमेथियस
प्रॉक्सी-स्तरीय मीट्रिक
सेवा-स्तरीय मीट्रिक
प्लगइन
प्लगइन
प्लगइन
Envoy प्रॉक्सी
सेवा A
प्रॉक्सी-स्तरीय मीट्रिक
सेवा-स्तरीय मीट्रिक
प्लगइन
प्लगइन
प्लगइन
Envoy प्रॉक्सी
सेवा B

Istio Envoy प्रॉक्सियों के माध्यम से वितरित ट्रेस बनाता है और Zipkin, Jaeger, Lightstep, और Datadog जैसे विभिन्न ट्रेसिंग बैकेंड्स का समर्थन करता है। ट्रेस निर्माण नमूनाकरण दर को कॉन्फ़िगर किया जा सकता है। इसके अलावा, Istio सेवा ट्रैफ़िक के लिए अनुकूलन योग्य प्रारूपों में पहुंच लॉग उत्पन्न करता है।

7. Istio में गोता लगाएँ

पर्याप्त पृष्ठभूमि, आइए Istio को क्रियान्वित करते हैं! हम क्यूबेरनेट्स क्लस्टर पर Istio स्थापित करेंगे और इसकी शक्ति को प्रदर्शित करने के लिए एक सरल माइक्रोसर्विस ऐप का उपयोग करेंगे।

7.1 स्थापना

Istio विभिन्न तरीकों से स्थापित होता है, लेकिन आपके OS (जैसे Windows) के लिए नवीनतम रिलीज़ को डाउनलोड और निकालना सबसे आसान है। निकाले गए पैकेज में bin फ़ोल्डर में istioctl क्लाइंट शामिल है। इस क्लस्टर पर Istio स्थापित करने के लिए istioctl का उपयोग करें:

istioctl install --set profile=demo -y

यह डेमो प्रोफ़ाइल का उपयोग करके डिफ़ॉल्ट क्यूबेरनेट्स क्लस्टर पर Istio घटकों को स्थापित करता है। यदि आवश्यक हो, तो 'डेमो' को किसी अन्य विक्रेता-विशिष्ट प्रोफ़ाइल के लिए स्वैप करें।

इसके बाद, इस क्यूबेरनेट्स क्लस्टर पर अनुप्रयोगों को तैनात करते समय Envoy साइडकार प्रॉक्सी को स्वचालित रूप से इंजेक्ट करने के लिए Istio को बताएं:

kubectl label namespace default istio-injection=enabled

हम यहाँ kubectl का उपयोग कर रहे हैं, यह मानते हुए कि आपके पास एक क्यूबेरनेट्स क्लस्टर (जैसे Minikube) और Kubernetes CLI kubectl सेटअप है।

7.2 नमूना अनुप्रयोग

इस डेमो के लिए एक सरल ऑनलाइन ऑर्डरिंग ऐप की कल्पना करें। इसमें तीन माइक्रोसर्विसेज शामिल हैं जो आदेशों को पूरा करने के लिए एक साथ काम करती हैं:

बुकिंग सेवा
इन्वेंटरी सेवा
शिपिंग सेवा

हम माइक्रोसर्विस विवरणों में नहीं जाएंगे, लेकिन इन्हें Spring Boot और REST APIs के साथ बनाना आसान है। महत्वपूर्ण बात यह है कि इन माइक्रोसर्विसेज के लिए Docker छवियाँ बनाएं ताकि क्यूबेरनेट्स पर तैनात किया जा सके।

7.3 तैनाती

क्यूबेरनेट्स क्लस्टर पर कंटेनराइज्ड वर्कलोड्स तैनात करना सरल है। वर्कलोड की घोषणा करने के लिए डिप्लॉयमेंट और सेवा संसाधनों का उपयोग करें। सामान्यतः, इन्हें YAML फ़ाइल में परिभाषित करें:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: order-service
  namespace: default
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: order-service
        version: v1
    spec:
      containers:
      - name: order-service
        image: kchandrakant/order-service:v1
        resources:
          requests:
            cpu: 0.1
            memory: 200
---
apiVersion: v1
kind: Service
metadata:
  name: order-service
spec:
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: http
  selector:
    app: order-service

यह ऑर्डर-सर्विस के लिए एक मूल डिप्लॉयमेंट और सेवा परिभाषा है। इन्वेंटरी-सर्विस और शिपिंग-सर्विस के लिए समान YAML फ़ाइलें बनाएं।

kubectl का उपयोग करके इन संसाधनों को आसानी से तैनात करें:

kubectl apply -f booking-service.yaml -f inventory-service.yaml -f shipping-service.yaml

चूंकि हमने डिफ़ॉल्ट नामक्षेत्र के लिए Envoy साइडकार प्रॉक्सी के स्वचालित इंजेक्शन को सक्षम किया है, इसलिए सब कुछ संभाल लिया गया है। या, istioctl के kube-inject कमांड का उपयोग करके Envoy साइडकार प्रॉक्सी को मैन्युअल रूप से इंजेक्ट करें।

7.4 अनुप्रयोग तक पहुँच

Istio मुख्य रूप से मेष ट्रैफ़िक को संभालता है। डिफ़ॉल्ट रूप से, मेष के अंदर या बाहर से ट्रैफ़िक अवरुद्ध होता है। Istio इनबाउंड और आउटबाउंड मेष ट्रैफ़िक को प्रबंधित करने के लिए गेटवे का उपयोग करता है, जिससे आपको नियंत्रित करने की सटीकता मिलती है कि क्या अंदर या बाहर आता है। Istio पूर्व-निर्धारित गेटवे प्रॉक्सी तैनात करता है: istio-ingressgateway और istio-egressgateway।

अपने ऐप के लिए एक गेटवे और वर्चुअल सेवा बनाएँ:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: booking-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: booking
spec:
  hosts:
  - "*"
  gateways:
  - booking-gateway
  http:
  - match:
    - uri:
        prefix: /api/v1/booking
    route:
    - destination:
        host: booking-service
        port:
          number: 8080

हम यहाँ डिफ़ॉल्ट Istio इनग्रेस कंट्रोलर का उपयोग कर रहे हैं। इसके अलावा, हमने बुकिंग-सेवा के लिए अनुरोधों को रूट करने के लिए एक वर्चुअल सेवा को परिभाषित किया है।

आप आउटबाउंड मेष ट्रैफ़िक के लिए एक एग्रेस गेटवे भी परिभाषित कर सकते हैं।

8 सामान्य Istio उपयोग मामले

हमने क्यूबेरनेट्स पर Istio के साथ एक सरल ऐप तैनात किया है। आइए Istio की शक्तिशाली विशेषताओं का अन्वेषण करें और देखें कि वे हमारे अनुप्रयोग को कैसे बढ़ा सकती हैं।

8.1 अनुरोध राउटिंग

कल्पना करें कि आप शिपिंग-सेवा जैसे माइक्रोसर्विस के कई संस्करणों को तैनात कर रहे हैं। आप नए फीचर्स को बिना सभी उपयोगकर्ताओं पर प्रभाव डाले क्रमिक रूप से पेश करना चाहते हैं। अनुरोध राउटिंग आपको ऐसा करने की अनुमति देती है, जिससे ट्रैफ़िक का एक हिस्सा नवीनतम संस्करण की ओर रूट किया जा सके।

इसको प्राप्त करने के लिए आभासी सेवा राउटिंग नियमों का उपयोग करें।

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: shipping-service
spec:
  hosts:
    - shipping-service
  http:
  - route:
    - destination:
        host: shipping-service
        subset: v1
      weight: 90
    - destination:
        host: shipping-service
        subset: v2
      weight: 10
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: shipping-service
spec:
  host: shipping-service
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2

राउटिंग नियम ट्रैफ़िक को हेडर या अन्य विशेषताओं के आधार पर फ़िल्टर कर सकते हैं। लक्ष्य फ़ील्ड अनुरोधित सेवाओं के लिए लक्षित सेवा को निर्दिष्ट करती है।

8.2 सर्किट ब्रेकिंग

सर्किट ब्रेकरों के साथ श्रृंखला विफलताओं को रोकें। यह पैटर्न त्रुटियों का पता लगाता है और असफल सेवाओं के लिए ट्रैफ़िक को अस्थायी रूप से रोक देता है, आपकी अनुप्रयोग की समग्र स्वास्थ्य को सुरक्षित करता है।

Istio का DestinationRule आपको इन्वेंटरी-सेवा जैसी सेवाओं के लिए सर्किट ब्रेकिंग व्यवहार को कॉन्फ़िगर करने की अनुमति देता है।

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: inventory-service
spec:
  host: inventory-service
  trafficPolicy:
    connectionPool:
      tcp:
        maxConnections: 1
      http:
        http1MaxPendingRequests: 1
        maxRequestsPerConnection: 1
    outlierDetection:
      consecutive5xxErrors: 1
      interval: 1s
      baseEjectionTime: 3m
      maxEjectionPercent: 100

अधिकतम कनेक्शनों, लंबित अनुरोधों, और कनेक्शन प्रति अनुरोधों को सीमित करके आप प्रभावी रूप से ट्रैफ़िक को प्रबंधित कर सकते हैं और ओवरलोड से रोक सकते हैं।

8.3 म्यूचुअल TLS सक्षम करना

म्यूचुअल TLS सेवाओं के बीच सुरक्षित संचार सुनिश्चित करता है, जिससे दोनों पक्षों को प्रमाणीकरण की आवश्यकता होती है। Istio अपने प्रॉक्सियों का उपयोग करके सेवाओं के लिए स्वचालित रूप से म्यूचुअल TLS सक्षम करता है।

जबकि Istio प्रॉक्सी की गई सेवाओं के बीच म्यूचुअल TLS लागू करता है, बिना प्रॉक्सी वाली सेवाओं के लिए प्लेन-टेक्स्ट ट्रैफ़िक अभी भी पहुँच सकता है। अपने पूरे मेष में म्यूचुअल TLS को लागू करने के लिए PeerAuthentication नीतियों का उपयोग करें।

apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
  name: "default"
  namespace: "istio-system"
spec:
  mtls:
    mode: STRICT

आप मेश, नेमस्पेस, या सेवा स्तर पर म्यूचुअल TLS लागू कर सकते हैं। सेवा-विशिष्ट नीतियाँ नेमस्पेस-व्यापी सेटिंग्स को ओवरराइड करती हैं।

8.4 JWT के साथ पहुँच नियंत्रण

JSON वेब टोकन (JWT) उपयोगकर्ता जानकारी को सुरक्षित रूप से संचारित करने के लिए एक मानक हैं। इन्हें प्रमाणीकरण और प्राधिकरण के लिए व्यापक रूप से उपयोग किया जाता है।

Istio की AuthorizationPolicy आपको JWT दावों के आधार पर बुकिंग-सेवा जैसी सेवाओं तक पहुँच को नियंत्रित करने की अनुमति देती है।

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: require-jwt
  namespace: default
spec:
  selector:
    matchLabels:
      app: booking-service
  action: ALLOW
  rules:
  - from:
    - source:
       requestPrincipals: ["[email protected]/[email protected]"]

प्राधिकृत पहुँच के लिए विशिष्ट दावों के साथ मान्य JWT की आवश्यकता है। Istio JWT के धारक और विषय दावों से requestPrincipal विशेषता बनाता है।

9. अंतिम विचार

Istio वितरित माइक्रोसर्विस आर्किटेक्चर में सामान्य चुनौतियों का प्रबंधन करने में आसान बनाता है। हालाँकि, इसकी जटिलता तैनातियों पर ओवरहेड जोड़ सकती है। किसी भी उपकरण की तरह, Istio कोई जादुई समाधान नहीं है और इसे सावधानी से विचार करने की आवश्यकता है।

9.1 क्या सर्विस मेष हमेशा आवश्यक है?

जबकि सर्विस मेष कई लाभ प्रदान करती है, इन नुकसानों पर विचार करें:

  • सर्विस मेष सभी सेवा से सेवा संचार को प्रबंधित करने से ओवरहेड जोड़ती है। यह सरल अनुप्रयोगों के लिए अनावश्यक हो सकता है।
  • यदि आप पहले से ही एप्लिकेशन कोड में सर्किट ब्रेकिंग जैसी चिंताओं को संभालते हैं, तो सर्विस मेष का उपयोग करने से प्रयासों में दोहराव हो सकता है।
  • सर्विस मेष पर निर्भरता अनुप्रयोग की पोर्टेबिलिटी को सीमित कर सकती है, उद्योग मानकों की कमी के कारण।
  • सर्विस मेष प्रॉक्सी अनुरोधों में विलंबता जोड़ सकती है।
  • सर्विस मेष की जटिल अवसंरचना और कॉन्फ़िगरेशन का प्रबंधन करने के लिए विशेषज्ञता की आवश्यकता होती है।
  • कार्यात्मक तर्क (जो सर्विस मेष के लिए आदर्श है) और व्यावसायिक तर्क (जो बाहर रहना चाहिए) को मिलाना समस्याग्रस्त हो सकता है।

सर्विस मेष लाभ प्रदान करती है, लेकिन आपकी अनुप्रयोग की जटिलता का सावधानीपूर्वक मूल्यांकन करना महत्वपूर्ण है। लाभों और बढ़ी हुई जटिलता के बीच संतुलन बनाना आवश्यक है।

9.2 Istio विकल्प

Istio एक लोकप्रिय सर्विस मेष है, जो उद्योग के नेताओं द्वारा समर्थित है, लेकिन यह एकमात्र विकल्प नहीं है। यहाँ Linkerd और Consul का संक्षिप्त अवलोकन है।

Linkerd एक क्यूबेरनेट्स-नेटिव, ओपन-सोर्स सर्विस मेष है जो तेजी से लोकप्रियता प्राप्त कर रहा है। यह एक CNCF इन्क्यूबेटिंग प्रोजेक्ट है और Istio की तरह TCP प्रॉक्सी का उपयोग करता है। Linkerd का Rust-आधारित माइक्रो-प्रॉक्सी Linkerd-proxy कहलाता है।

Linkerd आमतौर पर Istio की तुलना में सरल है क्योंकि यह क्यूबेरनेट्स पर केंद्रित है। हालाँकि, इसकी विशेषताएँ Istio की तरह बहुत मिलती-जुलती हैं, और इसकी मूल आर्किटेक्चर समान है। Linkerd में एक उपयोगकर्ता इंटरफ़ेस, डेटा प्लेन, और नियंत्रण प्लेन शामिल हैं।

Consul HashiCorp का एक ओपन-सोर्स सर्विस मेष है, जो अन्य HashiCorp अवसंरचना उपकरणों के साथ एकीकृत होता है। Consul का डेटा प्लेन प्रॉक्सी और स्वदेशी एकीकरण मॉडल दोनों का समर्थन करता है। यह एक अंतर्निहित प्रॉक्सी प्रदान करता है, लेकिन Envoy के साथ भी काम कर सकता है।

Consul क्यूबेरनेट्स से परे संचालित होता है, नॉमाड जैसे प्लेटफ़ॉर्म का समर्थन करता है। यह प्रत्येक नोड पर स्वास्थ्य जांच के लिए एजेंट का उपयोग करता है और डेटा स्टोरेज और पुनरुत्पादन के लिए Consul सर्वरों के साथ संचार करता है। जबकि यह मानक सर्विस मेष सुविधाएँ प्रदान करता है, Consul को तैनात और प्रबंधित करना अधिक जटिल है।

10. समापन

इस ट्यूटोरियल ने सर्विस मेष आर्किटेक्चर के मूल सिद्धांतों और Istio की शक्तिशाली क्षमताओं का अन्वेषण किया है। हमने Istio की मुख्य संरचना, घटकों, और व्यावहारिक अनुप्रयोगों में गहराई से प्रवेश किया है। अंततः, आपके पास सामान्य परिदृश्यों के लिए Istio को स्थापित और उपयोग करने की ठोस समझ होनी चाहिए।

ग्राहक प्रतिक्रिया

निम्नलिखित समीक्षाएँ हमारी वेबसाइट पर एकत्र की गई हैं।

4 सितारे आधारित 130 समीक्षाओं पर
असाधारण Istio सर्विस मेष कार्यान्वयन
Istio सर्विस मेष कार्यान्वयन ने हमारे माइक्रोसर्विस आर्किटेक्चर में महत्वपूर्ण सुधार किया, जिससे 40% की दक्षता में वृद्धि हुई।
द्वारा समीक्षा सुरेश ठाकुर (सॉफ़्टवेयर इंजीनियर)
माइक्रोसर्विस प्रबंधन के लिए अत्यधिक अनुशंसा
Istio सर्विस मेष एक गेम-चेंजर साबित हुआ, हमारी लेटेंसी को 30% तक कम किया। अत्यधिक अनुशंसा करता हूँ!
द्वारा समीक्षा किरण शर्मा (DevOps विशेषज्ञ)
ट्रैफ़िक प्रबंधन के लिए महान उपकरण
Istio सर्विस मेष का उपयोग करने से ट्रैफ़िक प्रबंधन में 25% तक सुधार हुआ।
द्वारा समीक्षा जीतेन्द्र सूरी (आईटी प्रबंधक)
सुरक्षा सुविधाएँ बढ़ाईं
Istio सर्विस मेष की सुरक्षा सुविधाओं ने हमारे सिस्टम को अधिक मजबूत बना दिया, कमजोरियों में 50% की कमी आई।
द्वारा समीक्षा सोमनाथ दास (साइबर सुरक्षा विश्लेषक)
निरंतरता और निगरानी में सुधार
Istio सर्विस मेष के अवलोकन उपकरणों ने हमारी निगरानी क्षमताओं को बढ़ाया, समस्याओं को हल करने का समय 35% तक कम किया।
द्वारा समीक्षा चंचल वर्मा (सिस्टम प्रशासक)
सेवा प्रबंधन को सरल बनाना
Istio सर्विस मेष के कारण सेवा प्रबंधन कभी भी इतना आसान नहीं रहा, जिसने हमारी सेवा डाउनटाइम को 45% तक कम किया।
द्वारा समीक्षा एक्कसिथ चोटी (परियोजना प्रबंधक)
बड़े पैमाने पर तैनाती के लिए प्रभावी
Istio सर्विस मेष बड़े पैमाने पर तैनाती के लिए प्रभावी है, तैनाती की गति को 50% तक बढ़ाता है।
द्वारा समीक्षा वित्त लीनुटाफोंग (क्लाउड आर्किटेक्ट)
करियर उन्नति को आसान बनाना
कंपनी विभिन्न प्रशिक्षण पाठ्यक्रमों के माध्यम से आत्म-विकास के लिए प्रचुर अवसर प्रदान करती है।
द्वारा समीक्षा चैतन्य तैप (सेल्स डायरेक्टर)
मजबूत नीति प्रबंधन
Istio सर्विस मेष के साथ नीति प्रबंधन मजबूत है, नीति उल्लंघनों में 40% की कमी आई है।
द्वारा समीक्षा लारा क्रिस्टी (CTO)
उत्कृष्ट समर्थन और दस्तावेज़ीकरण
Istio सर्विस मेष के लिए समर्थन और दस्तावेज़ीकरण उत्कृष्ट हैं।
द्वारा समीक्षा अनेक पिचित (तकनीकी समर्थन इंजीनियर)
बहुपरकारी और स्केलेबल समाधान
Istio सर्विस मेष एक बहुपरकारी और स्केलेबल समाधान है।
द्वारा समीक्षा अरुणी वोंग (सोल्यूशंस आर्किटेक्ट)
सेवा से सेवा संचार को सरल बनाना
सेवा से सेवा संचार को सरल बनाते हुए, Istio सर्विस मेष ने हमारी त्रुटि दर को 30% तक कम किया।
द्वारा समीक्षा बन्नम बंसल (बैकेंड डेवलपर)
लागत प्रभावी सर्विस मेष समाधान
Istio सर्विस मेष एक लागत प्रभावी समाधान है।
द्वारा समीक्षा रंगसन चनारुक (वित्त प्रबंधक)

क्या आपके पास प्रश्न हैं? नीचे उत्तर खोजें!

हमारे सबसे अधिक पूछे जाने वाले प्रश्न

Istio एक ओपन-सोर्स सर्विस मेष है जो माइक्रोसर्विसेज को सुरक्षित, कनेक्ट, और अवलोकन करने के लिए एक समान तरीका प्रदान करती है। यह ट्रैफ़िक प्रबंधन, सुरक्षा, और निगरानी जैसी क्षमताएँ प्रदान करता है, जिससे माइक्रोसर्विस आर्किटेक्चर की जटिलताओं का प्रबंधन आसान हो जाता है।
Istio समृद्ध राउटिंग नियमों, पुनः प्रयासों, फ़ेलओवर, और दोष इंजेक्शन के साथ ट्रैफ़िक व्यवहार पर बारीक नियंत्रण सक्षम करता है। इससे माइक्रोसर्विसेज के बीच ट्रैफ़िक के प्रवाह को अनुकूलित करने में मदद मिलती है, जिससे विश्वसनीयता और लचीलापन सुनिश्चित होता है।
Istio मजबूत सुरक्षा सुविधाएँ प्रदान करता है, जिसमें सेवा से सेवा प्रमाणीकरण के लिए म्यूचुअल TLS, भूमिका-आधारित पहुँच नियंत्रण, और नीति प्रवर्तन शामिल हैं। ये सुविधाएँ सुनिश्चित करती हैं कि सेवाओं के बीच संचार सुरक्षित और संगठनात्मक नीतियों के अनुपालन में हो।
हाँ, Istio को मौजूदा CI/CD पाइपलाइनों के साथ एकीकृत किया जा सकता है ताकि तैनाती को स्वचालित किया जा सके और माइक्रोसर्विसेज की निरंतर डिलीवरी सुनिश्चित हो सके। यह एकीकरण सॉफ़्टवेयर विकास चक्रों की गति और चपलता बनाए रखने में मदद करता है।