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

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

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

  • जेनकिंस पाइपलाइन चलाना
  • कुबेरनेट्स क्लस्टर का परीक्षण
  • निष्कर्ष

जेनकिंस पाइपलाइन चलाना

अभी बनाएं क्लिक करें जेनकिंस पाइपलाइन चलाने के लिए, जैसा कि चित्र 1 में दिखाया गया है।


चित्र 1: बिल्ड नाउ ने जेनकिंस पाइपलाइन शुरू की

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


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

जेनकिंस पाइपलाइन के लिए कंसोल आउटपुट में, इनपुट अनुरोधित . पर क्लिक करें लिंक, जैसा कि चित्र 3 में दिखाया गया है।


चित्र 3: नोड्स की संख्या के लिए अनुरोधित इनपुट

नोड्स की संख्या संवाद प्रदर्शित होता है, नोड्स की संख्या के लिए उपयोगकर्ता इनपुट के लिए संकेत देता है, जैसा कि चित्र 4 में दिखाया गया है। जेनकिंसफाइल में कॉन्फ़िगर किया गया एक डिफ़ॉल्ट मान भी सेट है। आगे बढ़ें Click क्लिक करें मान निर्दिष्ट करने के बाद।


चित्र 4: नोड्स की संख्या निर्दिष्ट करना

पाइपलाइन चलती रहती है और इंस्टेंस प्रकार के लिए किसी अन्य इनपुट अनुरोध पर फिर से रुक जाती है। इनपुट का अनुरोध किया गया . क्लिक करें , जैसा चित्र 5 में दिखाया गया है।


चित्र 5: इंस्टेंस प्रकार के लिए अनुरोधित इनपुट

आवृत्ति प्रकार संवाद प्रदर्शित होता है (चित्र 6 देखें)। डिफ़ॉल्ट मान चुनें (या एक अलग मान निर्दिष्ट करें) और आगे बढ़ें पर क्लिक करें।


चित्र 6: इंस्टेंस प्रकार निर्दिष्ट करना

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


चित्र 7: क्लस्टर के लिए अनुरोधित इनपुट को परिनियोजित किया जाना चाहिए

क्लस्टर परिनियोजित करना चाहिए? संवाद में, "हां" के डिफ़ॉल्ट मान का चयन करें और आगे बढ़ें पर क्लिक करें, जैसा कि चित्र 8 में दिखाया गया है।


चित्र 8: क्या क्लस्टर परिनियोजित करना चाहिए?

पाइपलाइन का काम जारी है। Kubernetes क्लस्टर के लिए AWS संसाधन बनाने में कुछ समय लग सकता है, जैसा कि चित्र 9 में दिखाए गए कंसोल आउटपुट में संदेश द्वारा दर्शाया गया है।


चित्र 9: एडब्ल्यूएस संसाधन बनाना

पाइपलाइन पूरी होने तक चलती है। एक "सफलता" संदेश इंगित करता है कि पाइपलाइन सफलतापूर्वक चल रही है, जैसा कि चित्र 10 में दिखाया गया है।


चित्र 10: जेनकिंस पाइपलाइन रन सफलतापूर्वक पूरा हुआ

जेनकिंस पाइपलाइन के लिए स्टेज व्यू पाइपलाइन के पूर्ण होने के विभिन्न चरणों को प्रदर्शित करता है, जैसा कि चित्र 11 में दिखाया गया है। स्टेज दृश्य में अंतिम निर्माण, अंतिम स्थिर निर्माण, अंतिम सफल निर्माण और अंतिम पूर्ण निर्माण के लिंक शामिल हैं।


चित्र 11: स्टेज व्यू

पूर्ण चरण दृश्य को अलग से प्रदर्शित करने के लिए पूर्ण चरण दृश्य पर क्लिक करें, जैसा कि चित्र 12 में दिखाया गया है।


चित्र 12: पूर्ण चरण दृश्य का चयन करना

पूर्ण चरण दृश्य प्रदर्शित होता है, जैसा कि चित्र 13 में दिखाया गया है।


चित्र 13: पूर्ण स्टेज दृश्य

डैशबोर्ड में, जेनकिंस पाइपलाइन से सटे आइकन हरे रंग में बदल जाता है, जो सफल समापन का संकेत देता है, जैसा कि चित्र 14 में दिखाया गया है।


चित्र 14: जेनकिंस पाइपलाइन के साथ जेनकींस डैशबोर्ड सफलतापूर्वक पूर्ण होने के रूप में सूचीबद्ध है

कंसोल आउटपुट प्रदर्शित करने के लिए, बिल्ड के लिए कंसोल आउटपुट चुनें, जैसा कि चित्र 15 में दिखाया गया है।


चित्र 15: इतिहास बनाएं>कंसोल आउटपुट

कंसोल आउटपुट प्रदर्शित होता है (चित्र 16 देखें)।


चित्र 16: कंसोल आउटपुट

एक अधिक विस्तृत कंसोल आउटपुट निम्नलिखित कोड खंड में सूचीबद्ध है:

Started by user Deepak Vohra
[Pipeline] node
Running on jenkins in /var/jenkins/workspace/install-kubernetes
[Pipeline] {
   [Pipeline] stage (set env)
   Using the 'stage' step without a block argument is deprecated
   Entering stage set env
   Proceeding
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + sudo yum install gnupg2
   Loaded plugins: priorities, update-motd, upgrade-helper
   Package gnupg2-2.0.28-1.30.amzn1.x86_64 already installed and
      latest version
   Nothing to do
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + gpg2 --keyserver pgp.mit.edu --recv-key FC8A365E
   gpg: directory '/home/ec2-user/.gnupg' created
   gpg: new configuration file '/home/ec2-user/.gnupg/gpg.conf'
        created
   ...
   ...
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + gpg2 --fingerprint FC8A365E
   pub   4096R/FC8A365E 2016-03-02 [expires: 2021-03-01]
         Key fingerprint = 18AD 5014 C99E F7E3 BA5F  6CE9 50BD
                           D3E0 FC8A 365E
   uid   [ unknown] CoreOS Application Signing Key
         <[email protected]>
   sub   2048R/3F1B2C87 2016-03-02 [expires: 2019-03-02]
   sub   2048R/BEDDBA18 2016-03-08 [expires: 2019-03-08]
   sub   2048R/7EF48FD3 2016-03-08 [expires: 2019-03-08]

   [Pipeline] sh
   [install-kubernetes] Running shell script
   + wget https://github.com/coreos/coreos-kubernetes/releases/
      download/v0.7.1/kube-aws-linux-amd64.tar.gz
   --2016-11-29 21:22:04-- https://github.com/coreos/
      coreos-kubernetes/releases/download/v0.7.1/
      kube-aws-linux-amd64.tar.gz
   Resolving github.com (github.com)... 192.30.253.112,
      192.30.253.113
   Connecting to github.com (github.com)|192.30.253.112|:443...
      connected.
   HTTP request sent, awaiting response... 302 Found
   Location: https://github-cloud.s3.amazonaws.com/releases/
      41458519/309e294a-29b1-
   ...
   ...
   2016-11-29 21:22:05 (62.5 MB/s) - 'kube-aws-linux-amd64.tar.gz'
      saved [4655969/4655969]

   [Pipeline] sh
   [install-kubernetes] Running shell script
   + wget https://github.com/coreos/coreos-kubernetes/releases/
   download/v0.7.1/kube-aws-linux-amd64.tar.gz.sig
   --2016-11-29 21:22:05--  https://github.com/coreos/
      coreos-kubernetes/releases/download/v0.7.1/kube-aws-linux-
      amd64.tar.gz.sig
   Resolving github.com (github.com)... 192.30.253.113,
      192.30.253.112
   Connecting to github.com (github.com)|192.30.253.113|:443...
      connected.
   HTTP request sent, awaiting response... 302 Found
   Location: https://github-cloud.s3.amazonaws.com/releases/
      41458519/0543b716-2bf4-
   ...
   ...
   Saving to: 'kube-aws-linux-amd64.tar.gz.sig'

   0K                          100% 9.21M=0s

   2016-11-29 21:22:05 (9.21 MB/s) -
      'kube-aws-linux-amd64.tar.gz.sig' saved [287/287]

   [Pipeline] sh
   [install-kubernetes] Running shell script
   + gpg2 --verify kube-aws-linux-amd64.tar.gz.sig kube-aws-
   linux-amd64.tar.gz
   gpg: Signature made Mon 06 Jun 2016 09:32:47 PM UTC using RSA
        key ID BEDDBA18
   gpg: Good signature from "CoreOS Application Signing Key
        <[email protected]>" [unknown]
   gpg: WARNING: This key is not certified with a trusted
        signature!
   gpg: There is no indication that the signature belongs to the
        owner.
   Primary key fingerprint: 18AD 5014 C99E F7E3 BA5F  6CE9 50BD
                            D3E0 FC8A 365E
      Subkey fingerprint: 55DB DA91 BBE1 849E A27F  E733 A6F7
                          1EE5 BEDD BA18
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + tar zxvf kube-aws-linux-amd64.tar.gz
   linux-amd64/
   linux-amd64/kube-aws
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + sudo mv linux-amd64/kube-aws /usr/local/bin
   [Pipeline] sh
   [install-kubernetes] Running shell script
   ...
   ...
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + aws ec2 create-volume --availability-zone us-east-1c
   --size 10 --volume-type gp2
   {
      "AvailabilityZone": "us-east-1c",
      "Encrypted":        false,
      "VolumeType":       "gp2",
      "VolumeId":         "vol-b325332f",
      "State":            "creating",
      "Iops":             100,
      "SnapshotId":       "",
      "CreateTime":       "2016-11-29T21:22:07.949Z",
      "Size":             10
   }
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + aws ec2 create-key-pair --key-name kubernetes-coreos
   --query KeyMaterial --output text
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + chmod 400 kubernetes-coreos.pem
   [Pipeline] stage (Kube-aws init)
   Using the 'stage' step without a block argument is deprecated
   Entering stage Kube-aws init
   Proceeding
   [Pipeline] deleteDir
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + mkdir coreos-cluster
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + cd coreos-cluster
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + kube-aws init --cluster-name=kubernetes-coreos-cluster
   --external-dns-name=NOSQLSEARCH.COM --region=us-east-1
   --availability-zone=us-east-1c --key-name=kubernetes-coreos
   --kms-key-arn=arn:aws:kms:us-east-1:672593526685:key/
      c9748fda-2ac6-43ff-a267-d4edc5b21ad9
   Success! Created cluster.yaml

   Next steps:
   1. (Optional) Edit cluster.yaml to parameterize the cluster.
   2. Use the "kube-aws render" command to render the stack
      template.
   [Pipeline] stage (Kube-aws render)
   Using the 'stage' step without a block argument is deprecated
   Entering stage Kube-aws render
   Proceeding
   [Pipeline] input
   Input requested
   Approved by Deepak Vohra
   [Pipeline] input
   Input requested
   Approved by Deepak Vohra
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + kube-aws render
   Success! Stack rendered to stack-template.json.

   Next steps:
   1. (Optional) Validate your changes to cluster.yaml with
      "kube-aws validate"
   2. (Optional) Further customize the cluster by modifying
      stack-template.json or files in ./userdata.
   3. Start the cluster with "kube-aws up".
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + sed -i 's/#workerCount: 1/workerCount: 3/' cluster.yaml
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + sed -i 's/#workerInstanceType: m3.medium/
      workerInstanceType: t2.micro/' cluster.yaml
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + kube-aws validate
   Validating UserData...
   UserData is valid.

   Validating stack template...
   Validation Report: {
      Capabilities: ["CAPABILITY_IAM"],
      CapabilitiesReason: "The following resource(s) require
         capabilities: [AWS::IAM::Role]",
      Description: "kube-aws Kubernetes cluster
         kubernetes-coreos-cluster"
   }
   stack template is valid.

   Validation OK!
   [Pipeline] stage (Archive CFN)
   Using the 'stage' step without a block argument is deprecated
   Entering stage Archive CFN
   Proceeding
   [Pipeline] step
   Archiving artifacts
   Recording fingerprints
   [Pipeline] stage (Deploy Cluster)
   Using the 'stage' step without a block argument is deprecated
   Entering stage Deploy Cluster
   Proceeding
   [Pipeline] input
   Input requested
   Approved by Deepak Vohra
   [Pipeline] echo
   Deploying Kubernetes cluster
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + kube-aws up
   Creating AWS resources. This should take around 5 minutes.
   Success! Your AWS resources have been created:
   Cluster Name:    kubernetes-coreos-cluster
   Controller IP:   34.193.183.134

   The containers that power your cluster are now being downloaded.

   You should be able to access the Kubernetes API once the
      containers finish downloading.
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + kube-aws status
   Cluster Name:    kubernetes-coreos-cluster
   Controller IP:   34.193.183.134
   [Pipeline] step
   Archiving artifacts
   Recording fingerprints
   [Pipeline] }
[Pipeline]   // Node
[Pipeline] End of Pipeline
Finished: SUCCESS

कुबेरनेट्स क्लस्टर का परीक्षण

कुबेरनेट्स स्थापित करने के बाद, आगे हम कुछ एप्लिकेशन चलाकर क्लस्टर का परीक्षण करेंगे। सबसे पहले, हमें नियंत्रक आईपी को सार्वजनिक DNS नाम (nosqlsearch.com) पर कॉन्फ़िगर करने की आवश्यकता है कार्यक्षेत्र)। कंसोल आउटपुट से कंट्रोलर आईपी को कॉपी करें, जैसा कि चित्र 17 में दिखाया गया है।


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

Kubernetes Controller Ip को EC2 कंसोल से भी प्राप्त किया जा सकता है, जैसा कि चित्र 18 में दिखाया गया है।


चित्र 18: कुबेरनेट्स नियंत्रक आईपी प्राप्त करना

होस्टिंग प्रदाता पर nosqlsearch.com डोमेन के लिए DNS ज़ोन फ़ाइल में A (होस्ट) प्रविष्टि जोड़ें, जैसा कि चित्र 19 में दिखाया गया है। A रिकॉर्ड जोड़ना विभिन्न होस्टिंग प्रदाताओं के लिए थोड़ा अलग होगा।


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

SSH मास्टर के आईपी का उपयोग करके कुबेरनेट्स मास्टर में लॉग इन करें।

ssh -i "kubernetes-coreos.pem" [email protected]

जैसा कि चित्र 20 में दिखाया गया है, CoreOS कमांड प्रॉम्प्ट प्रदर्शित होता है।


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

kubectl स्थापित करें बायनेरिज़:

sudo wget https://storage.googleapis.com/kubernetes-release/
   release/v1.3.0/bin/linux/amd64/./kubectl
sudo chmod +x ./kubectl

नोड्स की सूची बनाएं:

./kubectl get nodes

Kubernetes क्लस्टर नोड्स सूचीबद्ध हो जाते हैं (चित्र 21 देखें)।


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

क्लस्टर का परीक्षण करने के लिए, nginx . के लिए एक परिनियोजन बनाएं तीन प्रतिकृतियों से मिलकर बनता है।

kubectl  run nginx --image=nginx --replicas=3

इसके बाद, तैनाती की सूची बनाएं:

kubectl get deployments

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


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

क्लस्टर-वाइड पॉड्स की सूची बनाएं:

kubectl get pods -o wide

LoadBalancer . प्रकार की सेवा बनाएं nginx . से परिनियोजन:

kubectl expose deployment nginx --port=80 --type=LoadBalancer

सेवाओं की सूची बनाएं:

kubectl get services

क्लस्टर-वाइड पॉड्स सूचीबद्ध हो जाते हैं, जैसा कि चित्र 23 में दिखाया गया है। "nginx" सेवा क्लस्टर आईपी और बाहरी आईपी सहित बनाई और सूचीबद्ध की जाती है।


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

nginx . का आह्वान करें क्लस्टर आईपी पर सेवा। nginx सर्विस आउटपुट HTML मार्कअप प्रदर्शित होता है, जैसा कि चित्र 24 में दिखाया गया है।


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

निष्कर्ष

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CentOS 6 . पर कैसेंड्रा v3 कैसे स्थापित करें

  2. आधार रेखा का महत्व

  3. पायथन में MongoEngine के साथ सूचकांक निर्माण को संभालना

  4. एक ऑनलाइन सर्वेक्षण के लिए एक डेटाबेस मॉडल। भाग 3

  5. isql . में कमांड इतिहास