Database
 sql >> डेटाबेस >  >> RDS >> Database

कुबेरनेट्स एडब्ल्यूएस के साथ जेनकींस का उपयोग करना, भाग 1

CoreOS डॉकर कंटेनरों के लिए डिज़ाइन किया गया ऑपरेटिंग सिस्टम है। CoreOS में Docker आउट ऑफ़ द बॉक्स प्री-इंस्टॉल्ड है। क्लाउडफॉर्मेशन का उपयोग करके कोरओएस पर कुबेरनेट्स स्थापित किया जा सकता है, जैसा कि पहले के एक लेख में विस्तार से चर्चा की गई थी, "अमेज़ॅन वेब सर्विसेज (एडब्ल्यूएस) पर कुबेरनेट्स के साथ शुरुआत करना।"

समस्या

Kubernetes CoreOS पर पूर्व-स्थापित नहीं है और kube-aws का उपयोग करके स्थापित किया जा सकता है उपकरण और इसके लिए कुछ उपयोगकर्ता इनपुट और कॉन्फ़िगरेशन की आवश्यकता होती है। CoreOS पर Kubernetes स्थापित करना एक सम्मिलित प्रक्रिया है और इसमें चित्र 1 में दिखाए गए निम्नलिखित चरण शामिल हैं।


चित्र 1: CoreOS चरणों पर Kubernetes की स्थापना

समाधान

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


चित्र 2: CoreOS पर Kubernetes स्थापित करने के लिए जेनकिंस पाइपलाइन

जेनकिंस पाइपलाइन का उपयोग करके कुबेरनेट्स को स्थापित करना स्वचालन का एक उदाहरण है DevOps डिज़ाइन पैटर्न।

तीन-लेख ट्यूटोरियल में, हम जेनकिंस पाइपलाइन का उपयोग करके कुबेरनेट्स स्थापना प्रक्रिया को स्वचालित करेंगे। इस लेख में निम्नलिखित भाग हैं:

  • पर्यावरण की स्थापना
  • पूर्व-आवश्यक कलाकृतियों का निर्माण
  • जेनकींस नोड बनाना
  • निष्कर्ष

पर्यावरण की स्थापना

हम एक CoreOS उदाहरण पर डॉकर छवि "जेनकींस" का उपयोग करके जेनकिंस स्थापित करेंगे। हम जेनकिन्स पाइपलाइन का उपयोग करके अमेज़ॅन एएमआई लिनक्स ईसी 2 इंस्टेंस पर कुबेरनेट्स क्लस्टर लॉन्च करेंगे। सबसे पहले, दो EC2 इंस्टेंस लॉन्च करें, एक Amazon Linux चला रहा है और दूसरा CoreOS चला रहा है, जैसा कि चित्र 3 में दिखाया गया है।


चित्र 3: सार्वजनिक आईपी पता प्राप्त करना

अमेज़ॅन लिनक्स इंस्टेंस बनाते समय, "नई कुंजी जोड़ी बनाएं" का चयन करके एक नई कुंजी जोड़ी ("जेनकींस", उदाहरण के लिए) बनाएं और जेनकिन्स एजेंट को कॉन्फ़िगर करने के लिए उपयोग की जाने वाली निजी कुंजी "jenkins.pem" डाउनलोड करें। CoreOS और SSH चलाने वाले EC2 इंस्टेंस का सार्वजनिक IP पता प्राप्त करें और इंस्टेंस में लॉग इन करें।

ssh -i "jenkins.pem"  [email protected]

जेनकिंस को जेनकिंस लॉन्च करने के लिए डॉकर इमेज चलाएँ।

docker run -name jenkins -p 8080:8080 -p 50000:50000 jenkins

डॉकर छवि "जेनकींस" डाउनलोड हो जाती है। जेनकींस शुरू हो जाता है। जनरेट किया गया पासवर्ड कॉपी करें। जेनकिंस चलाने वाले ईसी2 इंस्टेंस का सार्वजनिक डीएनएस प्राप्त करें। url :8080 . का उपयोग करना , जेनकिंस डैशबोर्ड में लॉग इन करें, जैसा कि चित्र 4 में दिखाया गया है।


चित्र 4: जेनकिंस एडमिन कंसोल

पूर्वावश्यक कलाकृतियां बनाना

अब, हमें कुबेरनेट्स क्लस्टर के लिए कुछ ऐसी कलाकृतियां बनाने की आवश्यकता है जो स्वचालन के लिए उत्तरदायी नहीं हैं।

  • EC2 की-जोड़ी
  • केएमएस कुंजी
  • जेनकींस निर्देशिका /var/jenkins
  • Amazon Linux चलाने वाले Amazon EC2 इंस्टेंस में SSH लॉगिन करें
ssh -i "jenkins.pem"  [email protected]

चूंकि Amazon EC2 का उपयोग किया जाता है, इसलिए AWS खाते की आवश्यकता होती है। हमें AWS सुरक्षा क्रेडेंशियल्स का एक सेट बनाने की आवश्यकता है, जिसका उपयोग हम EC2 इंस्टेंस को कॉन्फ़िगर करने के लिए करेंगे जिससे CloudFormation स्टैक लॉन्च किया गया है। नए AWS सुरक्षा क्रेडेंशियल बनाने के लिए, उपयोगकर्ता खाते के लिए सुरक्षा क्रेडेंशियल क्लिक करें और नई एक्सेस कुंजी बनाएं क्लिक करें एक्सेस कुंजी बनाने के लिए। प्रवेश कुंजी आईडी को कॉपी करें और पहुंच कुंजी। अमेज़ॅन लिनक्स इंस्टेंस में, एडब्ल्यूएस क्रेडेंशियल्स के साथ इंस्टेंस को कॉन्फ़िगर करने के लिए निम्न कमांड चलाएँ:

aws configure

संकेत मिलने पर एक्सेस कुंजी आईडी और एक्सेस कुंजी निर्दिष्ट करें। डिफ़ॉल्ट क्षेत्र का नाम निर्दिष्ट करें (us-east-1 ) और आउटपुट स्वरूप (json .) ), जैसा कि चित्र 5 में दिखाया गया है।


चित्र 5: जेनकिंस इंस्टेंस को एडब्ल्यूएस क्रेडेंशियल्स, क्षेत्र और डिफ़ॉल्ट आउटपुट स्वरूप के साथ कॉन्फ़िगर करना

इसके बाद, एक EC2 की-पेयर बनाएं। kubernetes-coreos called नामक कुंजी जोड़ी बनाने के लिए निम्न कमांड चलाएँ और इसे kubernetes-coreos.pem . के रूप में सहेजें ।

aws ec2 create-key-pair
   --key-name kubernetes-coreos
   --query 'KeyMaterial'
   --output text > kubernetes-coreos.pem

400 के रूप में मोड का उपयोग करके कुंजी जोड़ी की एक्सेस अनुमतियों को संशोधित करें, जो स्वामी द्वारा पढ़ने के लिए एक्सेस अनुमतियां सेट करता है।

chmod 400 kubernetes-coreos.pem

एक कुंजी जोड़ी बन जाती है और एक्सेस अनुमतियां सेट हो जाती हैं (चित्र 6 देखें)।


चित्र 6: Kubernetes के लिए एक कुंजी जोड़ी बनाना

की जोड़ी भी AWS EC2 कंसोल में सूचीबद्ध होती है, जैसा कि चित्र 7 में दिखाया गया है।


चित्र 7: सार्वजनिक आईपी पता प्राप्त करना

इसके बाद, एक KMS कुंजी बनाएं, जिसका उपयोग क्लस्टर TLS संपत्तियों को एन्क्रिप्ट/डिक्रिप्ट करने के लिए किया जाता है और एक Arn स्ट्रिंग द्वारा पहचाना जाता है। aws . का उपयोग करें us-east-1 . क्षेत्र के लिए KMS कुंजी बनाने के लिए कमांड लाइन इंटरफ़ेस ।

aws kms
   --region=us-east-1 create-key
   --description="kube-aws assets"

जैसा कि चित्र 8 में दिखाया गया है, एक KMS कुंजी बनाई जाती है। KeyMetadata.Arn की प्रतिलिपि बनाएँ arn:aws:kms:us-east-1 . से शुरू होने वाली स्ट्रिंग बाद में क्लस्टर CloudFormation को इनिशियलाइज़ करने के लिए उपयोग किया जाएगा।


चित्र 8: KMS कुंजी बनाना

हमें जेनकिंस के लिए एक निर्देशिका बनाने की भी आवश्यकता है:

sudo mkdir /var/Jenkins
sudo chmod 777 /var/jenkins

एक निर्देशिका बन जाती है और अनुमतियाँ सेट हो जाती हैं, जैसा कि चित्र 9 में दिखाया गया है।


चित्र 9: जेनकिंस के लिए एक निर्देशिका बनाना

जेनकींस नोड बनाना

जेनकींस पाइपलाइन एक जेनकींस परियोजना है जो जेनकींस पाइपलाइन प्लग-इन का उपयोग करती है। एक पाइपलाइन में आमतौर पर चरणों का एक क्रम होता है, जिसमें प्रत्येक चरण एक कार्य करता है। एजेंटों पर उपलब्ध निष्पादकों का उपयोग जेनकिंस परियोजना को चलाने के लिए किया जाता है। एक "एजेंट" एक मशीन है जिसे मास्टर नोड से परियोजनाओं को ऑफलोड करने के लिए कॉन्फ़िगर किया गया है। "मास्टर" नोड वह मशीन है जिस पर जेनकिंस स्थापित है और बिल्ड सिस्टम के लिए सभी कार्यों को संभालता है, जिसमें पाइपलाइन स्क्रिप्ट को पार्स करना और एक निष्पादक पर जेनकिंस प्रोजेक्ट चलाना शामिल है। एक "निष्पादक" कोड संकलित करने के लिए एक कम्प्यूटेशनल संसाधन है और इसे मास्टर या एजेंट नोड्स पर कॉन्फ़िगर किया जा सकता है। इस खंड में, हम एक एजेंट नोड बनाएंगे और नोड पर एक निष्पादक को कॉन्फ़िगर करेंगे। जेनकींस प्रबंधित करें Select चुनें जेनकिंस डैशबोर्ड में, जैसा कि चित्र 10 में दिखाया गया है।


चित्र 10: सार्वजनिक आईपी पता प्राप्त करना

इसके बाद, नोड्स प्रबंधित करें . चुनें , जैसा कि चित्र 11 में दिखाया गया है।


चित्र 11: सार्वजनिक आईपी पता प्राप्त करना

"मास्टर" नोड सूचीबद्ध होना चाहिए। नया नोड क्लिक करें एजेंट नोड बनाने के लिए, जैसा कि चित्र 12 में दिखाया गया है।


चित्र 12: सार्वजनिक आईपी पता प्राप्त करना

एक नोड नाम निर्दिष्ट करें (जेनकींस , उदाहरण के लिए) और स्थायी एजेंट . चुनें रेडियो बटन, जैसा कि चित्र 13 में दिखाया गया है। ठीक क्लिक करें।


चित्र 13: सार्वजनिक आईपी पता प्राप्त करना

नए एजेंट नोड को कॉन्फ़िगर करने के लिए, हमें होस्ट डीएनएस की आवश्यकता होगी जिस पर एजेंट बनाया जाना है। Amazon Linux इमेज चलाने वाले EC2 इंस्टेंस के लिए AWS EC2 कंसोल से पब्लिक DNS को कॉपी करें, जैसा कि चित्र 14 में दिखाया गया है।


चित्र 14: सार्वजनिक आईपी पता प्राप्त करना

नए एजेंट इनपुट उपयोगकर्ता इंटरफ़ेस में, एक नाम निर्दिष्ट करें (जेनकींस , उदाहरण के लिए)। निष्पादकों में से # निर्दिष्ट करें के रूप में 1. एक दूरस्थ रूट निर्देशिका निर्दिष्ट करें /var/jenkins . के रूप में , जो पहले बनाया गया था। लेबल निर्दिष्ट करें "जेनकिन्स" के रूप में, जिसका महत्व हम अगले भाग में चर्चा करेंगे। उपयोग . में , "इस नोड का यथासंभव उपयोग करें" की डिफ़ॉल्ट सेटिंग रखें। लॉन्च विधि . में , "SSH के माध्यम से यूनिक्स मशीनों पर स्लेव एजेंट लॉन्च करें" चुनें। होस्ट . में , EC2 कंसोल से कॉपी किए गए सार्वजनिक DNS को निर्दिष्ट करें। उपलब्धता . में , "इस एजेंट को यथासंभव ऑनलाइन रखें" चुनें। क्रेडेंशियल्स . के लिए , जोड़ें . क्लिक करें ड्रॉप-डाउन करें और जेनकींस क्रेडेंशियल प्रदाता चुनें , जैसा कि चित्र 15 में दिखाया गया है।


चित्र 15: सार्वजनिक आईपी पता प्राप्त करना

क्रेडेंशियल जोड़ें . में संवाद में, डोमेन को वैश्विक प्रमाणिकता . के रूप में चुनें और दयालु वैश्विक . के रूप में . उपयोगकर्ता नाम निर्दिष्ट करें "ec2-उपयोगकर्ता" के रूप में और सीधे दर्ज करें . चुनें . निजी कुंजी फ़ाइल की सामग्री को कॉपी और पेस्ट करें jenkins.pem कुंजी . में फ़ील्ड, जैसा कि चित्र 16 में दिखाया गया है।


चित्र 16: जेनकींस क्रेडेंशियल्स जोड़ना

जोड़ें Click क्लिक करें , जैसा कि चित्र 17 में दिखाया गया है।


चित्र 17: जेनकिंस क्रेडेंशियल्स प्रदाता>जोड़ें

ec2-उपयोगकर्ता . चुनें क्रेडेंशियल्स . में क्रेडेंशियल , जैसा कि चित्र 18 में दिखाया गया है। सहेजें . क्लिक करें ।


चित्र 18: जेनकिंस नोड को कॉन्फ़िगर करना

एक नया एजेंट जोड़ा जाता है, जैसा कि चित्र 19 में दिखाया गया है। प्रारंभ में, एजेंट उपलब्ध नहीं हो सकता है क्योंकि यह अभी भी शुरू हो रहा है।


चित्र 19: जेनकिंस एजेंट बनाया गया

एजेंट लिंक पर क्लिक करें और एजेंट को फिर से लॉन्च करें . पर क्लिक करें , यदि आवश्यक हो, जैसा कि चित्र 20 में दिखाया गया है।


चित्र 20: पुन:लॉन्चिंग एजेंट

आउटपुट संदेश "एजेंट सफलतापूर्वक जुड़ा और ऑनलाइन" इंगित करता है कि एजेंट लॉन्च किया गया है (चित्र 21 देखें)।


चित्र 21: एजेंट सफलतापूर्वक जुड़ा और ऑनलाइन

"जेनकिंस" एजेंट को रनिंग के रूप में सूचीबद्ध किया जाना चाहिए, जैसा कि चित्र 22 में दिखाया गया है।


चित्र 22: जेनकिंस एजेंट चल रहा है

निष्कर्ष

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्टार स्कीमा बनाम स्नोफ्लेक स्कीमा

  2. एसक्यूएल में कॉलम के मूल्यों का योग कैसे करें?

  3. SQL में एक विदेशी कुंजी के साथ एक टेबल कैसे बनाएं

  4. अपने समय-श्रृंखला डेटाबेस को स्केल करना - कैसे आसानी से TimescaleDB को स्केल करें?

  5. MOOC प्लेटफॉर्म के लिए एक डेटाबेस मॉडल