कुबेरनेट्स क्लस्टर में एसएसएल/टीएलएस प्रमाणपत्र जोड़ें

Kuberanetsa Klastara Mem Esa Esa Ela Ti Ela Esa Pramanapatra Jorem



भविष्य की सुरक्षा के लिए Kubernetes पर बने एप्लिकेशन को सुरक्षित करने के लिए SSL प्रमाणपत्र का उपयोग किया जाता है। आइए एक और सुरक्षित प्रमाणपत्र, टीएलएस लें, जिसमें एक बहुत ही सुरक्षित निजी कुंजी होती है। प्रमाणपत्र प्रमाणपत्रों के साथ बनाए जाते हैं:  K8r.io API। हम विस्तृत उदाहरणों की सहायता से एसएसएल प्रमाणपत्र विन्यास के बारे में सिखाएंगे। कुबेरनेट्स में एसएसएल प्रमाणपत्र के साथ शुरू करते हैं। एसएसएल सर्टिफिकेट ब्राउजर के लिए बहुत जरूरी होता है। एसएसएल और टीएलएस प्रमाणपत्रों की मदद से ब्राउज़र कुबेरनेट्स सेवाओं के साथ एक सुरक्षित संबंध बनाता है।

पूर्वापेक्षाएँ:

प्रत्येक उपयोगकर्ता के पास अपने सिस्टम का उबंटू का नवीनतम संस्करण होना चाहिए। विंडोज ऑपरेटिंग सिस्टम का उपयोगकर्ता एक वर्चुअल बॉक्स स्थापित करता है और सिस्टम में वस्तुतः उबंटू या लिनक्स जोड़ता है। उपयोगकर्ताओं को इस विषय को बेहतर ढंग से समझने के लिए Kubernetes, kubectl कमांड लाइन, पॉड और क्लस्टर से परिचित होना चाहिए और क्लस्टर DNS को जानना चाहिए।







आइए पूरी प्रक्रिया को अलग-अलग चरणों में तोड़कर कुबेरनेट्स में एसएसएल सर्टिफिकेट कॉन्फ़िगरेशन पर एक संक्षिप्त नज़र डालते हैं।



चरण 1: कुबेरनेट्स नियंत्रण कक्ष प्रारंभ करें

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



> मिनिक्यूब शुरू करें

जब हम इस कमांड को अपने सिस्टम टर्मिनल पर चलाते हैं, तो कमांड का निष्पादन एंटर बटन दबाकर शुरू होता है। आदेश हमें बदले में नीचे संलग्न स्क्रीनशॉट परिणाम दिखाता है।





चरण 2: प्रमाणपत्र हस्ताक्षर अनुरोध उत्पन्न करें

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



> बिल्ली << ईओएफ | सीएफएसएल जेनकी - | cfssljson -अभी सर्वर

क्वेरी निष्पादन के बाद, निजी कुंजी के साथ अनुरोध सफलतापूर्वक उत्पन्न होता है। परिणाम स्क्रीनशॉट के रूप में ऊपर संलग्न है।

चरण 3: YAML फ़ाइल में एक प्रमाणपत्र हस्ताक्षर अनुरोध मैनिफेस्ट बनाएँ

इस चरण में, हम कुबेरनेट्स में CSR बनाने के लिए एक YAML फ़ाइल मेनिफेस्ट बनाएंगे। हम नीचे कमांड चलाते हैं:

> बिल्ली << ईओएफ | कुबेक्टल लागू करें -एफ -

इस आदेश के निष्पादन के बाद, एक YAML फ़ाइल सफलतापूर्वक बनाई गई है। और हम इसे एपीआई सर्वर पर भेजते हैं, जैसा कि संलग्न स्क्रीनशॉट में दिखाया गया है।

चरण 4: प्रमाणपत्र हस्ताक्षर अनुरोध स्थिति प्राप्त करें

इस चरण में, हम सीएसआर स्थिति को देखेंगे जैसा कि एपीआई के माध्यम से देखा जाता है। हम प्रमाणपत्र अनुरोध की स्थिति को पुनः प्राप्त करने के लिए दिए गए आदेश को चला सकते हैं।

> kubectl csv my-svc.my-namespace का वर्णन करता है

जब कमांड चलाया जाता है, तो सीएसआर स्थिति आउटपुट में प्रदर्शित होती है, जैसा कि संलग्न स्क्रीनशॉट में दिखाया गया है। सीएसआर की स्थिति 'लंबित' है और यह स्थिति एपीआई से आ रही है। फ़ाइल का नाम my-svc. my-namespace और एनोटेशन, उपयोगकर्ता और विषय का अनुरोध, DNS नाम और IP पते वाले विषय वैकल्पिक नाम, ईवेंट आदि CSR विवरण में शामिल हैं। स्थिति 'लंबित' है, जिसका अर्थ है कि सीएसआर प्रमाणपत्र अभी तक स्वीकृत नहीं हुआ है।

चरण 5: सीएसआर प्रमाणपत्र अनुमोदन

सीएसआर प्रमाणपत्र की स्थिति अभी भी लंबित है। इसलिए, इस मामले में, हम सीएसआर प्रमाणपत्र को स्वीकृत करने के लिए कुबेरनेट्स एपीआई को एक प्रश्न भेजेंगे। हम इस आदेश को अनुमोदन के लिए चलाते हैं:

> kubectl प्रमाणपत्र my-svc .my-namespace को स्वीकृत करता है

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

my-svc.my-namespace प्रमाणपत्रों.k8s.io API के माध्यम से सफलतापूर्वक स्वीकृत हो गया है।

चरण 6: कुबेरनेट्स में सीएसआर प्रमाणपत्र प्राप्त करें

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

> कुबेक्टल को सीएसआर मिलता है

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

चरण 7: प्राधिकरण बनाकर प्रमाणपत्र पर हस्ताक्षर करें

इस चरण में, हम देखेंगे कि कुबेरनेट्स में प्रमाणपत्रों पर हस्ताक्षर कैसे किए जाते हैं। एसएसएल प्रमाणपत्र स्वीकृत है लेकिन अभी तक हस्ताक्षरित नहीं है। हस्ताक्षरकर्ता का नाम कुबेरनेट्स में प्रमाण पत्र पर दिखाई देता है। हम कमांड चलाते हैं जिसके माध्यम से अनुरोधित हस्ताक्षरकर्ता प्रमाणपत्र पर हस्ताक्षर करता है। आदेश है:

> बिल्ली << ईओएफ | cfssl genart -initca - | cfssljson - नंगे सीए

{

'सीएन' : 'मेरा उदाहरण हस्ताक्षरकर्ता' ,
'चाभी' : {
'कोई चीज़' : 'आरएसए' ,
'आकार' : 2048
}


}

ईओएफ

प्रमाण पत्र को डिजिटल रूप से हस्ताक्षर करने के लिए आदेश चलाया जाता है। हस्ताक्षरकर्ता अनुरोधित प्रमाणपत्रों पर हस्ताक्षर करता है और 'एसएसएल प्रमाणपत्र' आदेश के साथ एपीआई स्थिति को अद्यतन करता है। हमने उपरोक्त आदेश चलाकर एक हस्ताक्षर प्रमाणपत्र बनाया और परिणाम संलग्न स्क्रीनशॉट में दिखाया गया है। प्रमाणपत्र पर हस्ताक्षर करने के लिए एक अद्वितीय सीरियल नंबर का सफलतापूर्वक उपयोग किया गया है।

चरण 8: प्रमाणपत्र जारी करने के लिए एक JSON फ़ाइल बनाएं

प्रमाणपत्र पर हस्ताक्षर करने के बाद, हम एक JSON फ़ाइल बनाते हैं जिससे हम प्रमाणपत्र जारी करते हैं। हम संलग्न स्क्रीनशॉट के साथ निम्न कमांड चलाकर एक JSON फाइल बनाएंगे:

> नैनो साइनिंगफाइल.जेसन

आदेश निष्पादित होने के बाद, JSON फ़ाइल बनाई जाती है जैसा कि नीचे स्क्रीनशॉट में देखा जा सकता है।

चरण 9: सर्वर-हस्ताक्षर-config.json का उपयोग करें

इस चरण में, हम सर्वर-साइनिंग-कॉन्फिग फ़ाइल का उपयोग करते हैं जो कि JSON में है और प्रमाण पत्र पर हस्ताक्षर करने और जारी करने के लिए है। हम एक निजी कुंजी फ़ाइल के साथ प्रमाणपत्र पर हस्ताक्षर करने के लिए कमांड चलाते हैं।

> kubectl csr my-svc.my-namespace प्राप्त करें -इस jsonpath =' { कल्पना। अनुरोध } ' | \ आधार64 --डिकोड | \ सीएफएसएल साइन -वह ca.pem -ca ca-key ca-key.pem -विन्यास सर्वर-हस्ताक्षर-config.json | \ cfssljson -अभी ca-हस्ताक्षरित-server

इस आदेश के बाद, जो प्रमाणपत्र पहले से ही json फ़ाइल में परिभाषित है, उस पर हस्ताक्षर किए जाते हैं। यह सीएसआर का सीरियल नंबर जनरेट होता है। यहां, हम 'ca-signed-server.pem' नाम की एक हस्ताक्षरित सर्विंग सर्टिफिकेट फ़ाइल जनरेट करते हैं।

चरण 10: एपीआई ऑब्जेक्ट में हस्ताक्षरित प्रमाणपत्र अपलोड करें

इस चरण में, हम हस्ताक्षरित प्रमाणपत्र को लंबित API स्थिति पर अपलोड करते हैं जिसे हमने ऊपर देखा था। अपलोड करने का आदेश है:

> kubectl csr my-svc.my-namespace प्राप्त करें -इस json | \  जक '.status.certificate = '

'
$ ( बेस 64 सीए-हस्ताक्षरित-server.pem | टीआर -डी '\एन' ) ''' | \

> कुबेक्टल बदलें --कच्चा / शहद की मक्खी / प्रमाणपत्र.k8s.io / v1 / certificatesigningrequests / my-svc.my-   नाम स्थान / दर्जा -एफ -

जब यह आदेश निष्पादित किया जाता है, तो जब भी सीएसआर स्वीकृत हो जाता है तो हस्ताक्षरित प्रमाणपत्र सफलतापूर्वक अपलोड किया जाता है। ऊपर संलग्न स्क्रीनशॉट हमें एक JSON प्रारूप दिखाता है जो हस्ताक्षरित प्रमाणपत्र को एपीआई ऑब्जेक्ट के रूप में अपलोड करता है।

चरण 11: कुबेरनेट्स में स्वीकृत प्रमाणपत्रों को सूचीबद्ध करें

हम कुबेरनेट्स में स्वीकृत प्रमाणपत्र दिखाने के लिए फिर से कमांड चलाते हैं।

> कुबेक्टल को सीएसआर मिलता है

प्रमाणपत्र स्वीकृत और सफलतापूर्वक जारी किया गया, जैसा कि ऊपर स्क्रीनशॉट में दिखाया गया है।

चरण 12: सिस्टम में प्रमाणपत्र सहेजें

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

> kubectl csr my-svc.my-namespace प्राप्त करें -इस jsonpath = '{।हैसियत प्रमाण पत्र}' \

| बेस 64 --डिकोड > server.crt

चरण 13: प्रमाणपत्र को पॉप्युलेट करें

इस चरण में, हम सीखेंगे कि प्रमाणपत्र को सर्वर पर कैसे पॉप्युलेट किया जाए ताकि हम आसानी से वेब सुरक्षा के लिए प्रमाणपत्र का उपयोग कर सकें। हम कमांड चलाते हैं:

कलसूम @ कलसूम > कुबेक्टल गुप्त टीएलएस सर्वर बनाते हैं --प्रमाण server.crt --चाभी सर्वर-key.pem

ऊपर-संलग्न स्क्रीनशॉट हमें दिखाता है कि TLS सुरक्षित या गुप्त सर्वर नाम cert server.cr के साथ सफलतापूर्वक बनाया गया है और इसमें निजी कुंजी server-key.pem है।

चरण 14: प्रमाणपत्र को कॉन्फ़िगर करें

इस चरण में, हम नीचे दिए गए आदेश को चलाकर प्रमाणपत्र को यह सुनिश्चित करने के लिए कॉन्फ़िगर करेंगे कि यह एक सुरक्षित सेवारत प्रमाणपत्र है:

> kubectl create configmap example-serving-ca --फ़ाइल से ca.crt=ca.pem

जैसा कि संलग्न स्क्रीनशॉट में दिखाया गया है, वेब सर्वर पर सुरक्षित कनेक्शन के लिए कुबेरनेट्स में कॉन्फिग मैप/उदाहरण-सर्विंग-सीए सफलतापूर्वक बनाया गया है।

निष्कर्ष

SSL प्रमाणपत्र का उपयोग वेब सर्वर पर Kubernetes अनुप्रयोगों को सुरक्षा प्रदान करने के लिए किया जाता है। हमने आपकी समझ के लिए हर कदम विस्तार से समझाया। आप एसएसएल प्रमाणपत्र स्थापित करने के लिए अपने कुबेरनेट्स एप्लिकेशन पर भी वही आदेश चला सकते हैं।