वास्तविक समय में कुबेरनेट क्लस्टर घटनाओं की कल्पना कैसे करें



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

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

हम निम्नलिखित प्रक्रिया के साथ आपके माध्यम से चलेंगे:





चरण 1: एक कुबेरनेट क्लस्टर बनाना

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

हम कुबेरनेट क्लस्टर बनाने के साथ शुरू करेंगे और मैं आपको कदम से कदम दिखाता हूं, कि कैसे CentOS 7 पर कुबेरनेट्स स्थापित और कॉन्फ़िगर किया जाए।



एक। होस्ट को कॉन्फ़िगर करें

    • vi / etc / मेजबान
    • होस्ट फ़ाइल में अपने होस्ट विवरण के अनुसार परिवर्तन करें

IMG1 - एलेस्टिक्स खोज - एडुर्का

२। नीचे दिए गए आदेशों को निष्पादित करके SELinux को अक्षम करें



    • सेटेनफोर्स 0
    • sed -i -follow-symlinks SEL s / SELINUX = लागू / SELINUX = अक्षम / g '/ आदि / sysconfig / selinux

३। Br_netfilter कर्नेल मॉड्यूल सक्षम करें

Kubernetes स्थापना के लिए br_netfilter मॉड्यूल की आवश्यकता है। Br_netfilter कर्नेल मॉड्यूल को सक्षम करने के लिए नीचे दिया गया कमांड चलाएँ।
    • modprobe br_netfilter
    • इको net 1 ’> / proc / sys / net / पुल / पुल-एनएफ-कॉल-आईपीटैबल्स

चार। नीचे कमांड चलाकर SWAP अक्षम करें।

    • अदला-बदली
    • फिर / etc / fstab संपादित करें और स्वैप लाइन पर टिप्पणी करें

५। Docker CE के नवीनतम संस्करण को स्थापित करें।नीचे आज्ञाओं को चलाकर docker-ce के लिए पैकेज निर्भरता स्थापित करें।

    • यम स्थापित -y यम-बर्तन डिवाइस-मैपर-लगातार-डेटा lvm2
सिस्टम में docker रिपॉजिटरी जोड़ें और yum कमांड का उपयोग करके docker-CE इंस्टॉल करें।

६। कुबेरनेट स्थापित करें

केंद्र 7 सिस्टम में कुबेरनेट्स रिपॉजिटरी को जोड़ने के लिए निम्न कमांड का उपयोग करें।
    • yum install -y kubelet bebeadm kubectl

[kubernetes] नाम = Kubernetes basurl = https: //packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 सक्षम = 1 gpgcheck = 1oo_gpgcheck = 1 gpgkey = https: //packages.cloud.google। com / yum / doc / yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF
स्थापित करें नीचे yum कमांड चलाकर kubeadm, kubelet और kubectl का उपयोग करते हुए संकुल।
  • systemctl start docker && systemctl सक्षम करें

स्थापना पूर्ण होने के बाद, उन सभी सर्वरों को पुनः आरंभ करें।पुनरारंभ करने के बाद सेवाएँ docker और kubelet प्रारंभ करें

जावा में सत्र क्या है
  • systemctl start docker && systemctl सक्षम करें
  • systemctl स्टार्ट kubelet && systemctl enable kubelet
।। कुबेरनेट्स क्लस्टर प्रारंभ मास्टर सर्वर पर लॉग इन करें और नीचे दिए गए कमांड को चलाएं
  • systemctl स्टार्ट kubelet && systemctl enable kubelet
एक बार कुबेरनेट्स आरंभीकरण पूरा होने के बाद, आपको परिणाम मिलेंगे।आपके द्वारा प्राप्त परिणामों से आदेशों को कॉपी करें और क्लस्टर का उपयोग शुरू करने के लिए इसे निष्पादित करें। परिणाम से kubeadm join कमांड का नोट बनाएँ। आदेश का उपयोग कुबेरनेट क्लस्टर में नए नोड्स को पंजीकृत करने के लिए किया जाएगा। ।। फ़्लनेल नेटवर्क को कुबेरनेट क्लस्टर में तैनात करें kubectl लागू करना -f

https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flanel.nl

फ़्लनेल नेटवर्क को कुबेरनेट्स क्लस्टर में तैनात किया गया है। कुछ समय तक प्रतीक्षा करें और फिर नीचे दिए गए आदेशों का उपयोग करके कुबेरनेट्स नोड और पॉड्स की जांच करें।
    • kubectl को नोड मिलते हैं
    • kubectl को पॉड -all-namespaces मिलते हैं
और आपको मिलेगा 'k8s-master' नोड, स्थिति 'रेडी' के साथ 'मास्टर' क्लस्टर के रूप में चल रहा है, और आपको नेटवर्क पॉड के लिए 'kube-flannel-ds' सहित क्लस्टर के लिए आवश्यक सभी पॉड मिलेंगे। विन्यास।

९। क्लस्टर में नोड्स जोड़नानोड 01 सर्वर से कनेक्ट करें और kubeadm join कमांड चलाएँ

    • kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i -discovery-token-ca-to-cert-hash sha256: 3k6c1824796ef1ff94d9427c883bde915dcbb131374/74

नोड02 सर्वर से कनेक्ट करें और kubeadm join कमांड को चलाएं

    • kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i -discovery-token-ca-to-cert-hash sha256: 3k6c1824796ef1ff94d9427c883bde915dcbb131374/74

कुछ समय के लिए प्रतीक्षा करें और some k8s- मास्टर 'मास्टर क्लस्टर सर्वर को सत्यापित करें, निम्नलिखित कमांड का उपयोग करके नोड्स और पॉड्स की जांच करें।

      • kubectl को नोड मिलते हैं

अब आपको कार्यकर्ता 1 मिलेगा और कार्यकर्ता 2 को 'तैयार' स्थिति वाले क्लस्टर में जोड़ दिया गया है।

      • kubectl को पॉड -all-namespaces मिलते हैं

कुबेरनेट्स क्लस्टर मास्टर आरंभीकरण और विन्यास पूरा हो गया है।

चरण 2: अमेज़न ES क्लस्टर बनाना

एलियटसर्च एक खुला स्रोत खोज और एनालिटिक्स इंजन है जो लॉग विश्लेषण और अनुप्रयोगों की वास्तविक समय की निगरानी के लिए उपयोग किया जाता है। Amazon Elasticsearch Service (Amazon ES) एक AWS सेवा है जो AWS क्लाउड में Elasticsearch की तैनाती, संचालन और पैमाने की अनुमति देता है। आप अपने Amazon SES से ईमेल भेजने की घटनाओं का विश्लेषण करने के लिए Amazon ES का उपयोग कर सकते हैं

हम अमेज़न ईएस क्लस्टर बनाएंगे और फिर कुबेरनेट्स क्लस्टर में फ़्लुएंट लॉगिंग एजेंट नियुक्त करेंगे जो लॉग इकट्ठा करेंगे और अमेज़न ईएस क्लस्टर भेजेंगे

यह खंड दिखाता है कि अमेज़न ES कंसोल का उपयोग कैसे करें अमेज़न ES क्लस्टर बनाने के लिए।

Amazon ES क्लस्टर बनाने के लिए

    1. AWS प्रबंधन कंसोल में साइन इन करें और Amazon Elasticsearch सेवा कंसोल खोलें https://console.aws.amazon.com/es/
    2. चुनते हैं एक नया डोमेन बनाएँ और परिनियोजन प्रकार चुनें अमेज़न ES कंसोल में
    3. संस्करण के तहत, एलिटिक्स खोज संस्करण फ़ील्ड के डिफ़ॉल्ट मान को छोड़ दें।
    4. अगला चुनें
    5. पर अपने लोचदार खोज डोमेन के लिए एक नाम टाइप करें क्लस्टर कॉन्फ़िगर करें के तहत पेज डोमेन कॉन्फ़िगर करें।
    6. कॉन्फ़िगर क्लस्टर पृष्ठ पर, डेटा इंस्टेंस के अंतर्गत निम्न विकल्पों का चयन करें
      • उदाहरण प्रकार - t2.micro.elasticsearch (फ्री टियर पात्र) चुनें।
      • उदाहरण की संख्या - एक
    7. के अंतर्गतसमर्पित मास्टर इंस्टेंसेस
      • समर्पित गुरु को सक्षम करें - इस विकल्प को सक्षम न करें।
      • जोन जागरूकता सक्षम करें - इस विकल्प को सक्षम न करें
    8. संग्रहण कॉन्फ़िगरेशन के तहत, निम्न विकल्प चुनें।
      • भण्डारण प्रकार - ईबीएस चुनें। ईबीएस सेटिंग्स के लिए, ईबीएस वॉल्यूम प्रकार का सामान्य प्रयोजन (एसएसडी) और ईबीएस वॉल्यूम आकार चुनें& thinsp10 का।
    9. एन्क्रिप्शन के तहत - इस विकल्प को सक्षम न करें
    10. स्नैपशॉट कॉन्फ़िगरेशन के तहत
      • स्वचालित स्नैपशॉट घंटे प्रारंभ करें - स्वचालित स्नैपशॉट प्रारंभ घंटे 00:00 UTC (डिफ़ॉल्ट) चुनें।
    11. अगला चुनें
    12. नेटवर्क कॉन्फ़िगरेशन के तहत VPC पहुँच का चयन करें और आपके VPC के अनुसार विवरण नीचे दिखाया गया है।किबाना प्रमाणीकरण के तहत: - इस विकल्प को सक्षम न करें।
    13. पहुँच नीति सेट करने के लिए, डोमेन के लिए खुली पहुँच की अनुमति दें का चयन करें।नोट: - उत्पादन में आपको विशिष्ट IPaddress या Ranges तक पहुँच को प्रतिबंधित करना चाहिए।
    14. अगला चुनें।
    15. समीक्षा पृष्ठ पर, अपनी सेटिंग्स की समीक्षा करें, और फिर पुष्टि करें और बनाएं चुनें।

नोट: क्लस्टर को तैनात करने में दस मिनट तक का समय लगेगा। अपने द्वारा बनाए गए लोचदार खोज डोमेन पर क्लिक करने के बाद अपने किबाना URL पर ध्यान दें।

चरण 3: कुबेरनेट क्लस्टर पर फ्लुएंट लॉगिंग एजेंट तैनात करें

धाराप्रवाह एक खुला स्रोत डेटा कलेक्टर है, जो आपको डेटा के बेहतर उपयोग और समझ के लिए डेटा संग्रह और खपत को एकजुट करने देता है। इस मामले में, हम कुबेरनेट्स क्लस्टर पर फ्लुएंट लॉगिंग को तैनात करेंगे, जो लॉग फ़ाइलों को इकट्ठा करेगा और अमेज़ॅन इलास्टिक सर्च को भेजेगा।

हम क्लस्टर बनाने के लिए फली और नेमस्पेस ऑब्जेक्ट्स पर अनुमति प्रदान करते हैं, जो क्लस्टर के लिए सूची, अनुरोध और वॉच अनुरोध करते हैं।

सबसे पहले, हमें RBAC (भूमिका-आधारित अभिगम नियंत्रण) अनुमतियों को कॉन्फ़िगर करने की आवश्यकता है ताकि फ्लुएंट उपयुक्त घटकों तक पहुंच सके।

1.फ्लुएंट-rbac.yaml:

ApiVersion: v1 तरह: ServiceAccount मेटाडेटा: नाम: धाराप्रवाह नाम स्थान: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 तरह: CladRole मेटाडेटा: नाम: fluentd namespace: kube-system rules: - apiGroup 'संसाधन: - पॉड्स - नेमस्पेस वर्ब्स: - मिलता है - लिस्ट - वॉच --- तरह: क्लस्टररोलबाइंडिंग एपिवर्सन: rbac.authorization.k8s.io/v1beta1 मेटाडेटा: नाम: फ्लेंटड रोल: एफईआर: तरह: क्लस्टर नाम: धाराप्रवाह एपीग्रुप: रॉबचोर .k8s.io विषय: - तरह: सेवा नाम: धाराप्रवाह नाम स्थान: घन-प्रणाली

बनाएँ: $ kubectl create -f kubernetes / fluentd-rbac.yaml
अब, हम DaemonSet बना सकते हैं।

2. फ़्लुएंट-डेमोंसेट.यूमल

ApiVersion: एक्सटेंशन / v1beta1 तरह: DaemonSet मेटाडेटा: नाम: धाराप्रवाह नाम स्थान: kube- सिस्टम लेबल: k8s-app: fluentd-logging संस्करण: v1 kubernetes -io/cluster-service: 'true' युक्ति: मेटाडाटा: लेबल: k8s -app: धाराप्रवाह लॉगिंग संस्करण: v1 kubernetes.io/cluster-service: 'सच' कल्पना: serviceAccount: fluentd serviceAccountName: धाराप्रवाह सहिष्णुता: - कुंजी: नोड -role.kubernetes.io/master प्रभाव: NoSchedule कंटेनर: - नाम: धाराप्रवाह छवि: धाराप्रवाह / धाराप्रवाह- kubernetes-daemonset: v1.3-debian-elasticsearch env: - नाम: FLUENT_ELASTICSEARCH_HOST मूल्य: 'elasticsearch .log' - नाम: FLUENT_ELASTICSEARCH_PORT मूल्य: '9200-7-6-933- ' नाम: FLUENT_UID मान: '0' संसाधन: सीमाएं: मेमोरी: 200Mi अनुरोध: cpu: 100 मीटर मेमोरी: 200Mi वॉल्यूम: - नाम: varlog MountPath: / var / log - नाम: varloddockercontainers MountPath: / var / lib / docker / कंटेनरों को आसानी से पढ़ा जा सकता है। : सच्चा समाप्तिग्रेगप्रोडेसकंड्स: ३० मात्राएँ: - नाम: varlog hostPath: पथ: / var / लॉग-इन नाम: varlibdockercontainers hostPath: पथ: / var / lib / docker / कंटेनरों

अपने लोचदार खोज वातावरण के अनुसार FLUENT_ELASTICSEARCH_HOST और FLUENT_ELASTICSEARCH_PORT को परिभाषित करना सुनिश्चित करें

तैनात करें:

$ kubectl create -f kubernetes / fluentd-daemonset.yaml

लॉग मान्य करें

$ kubectl लॉग धाराप्रवाह- lwbt6 -n kube-system | grep कनेक्शन

आपको देखना चाहिए कि फ्लोरेंट लॉग्स के भीतर एलियस्टेकसर्च से जुड़ता है:

चरण 4: किबाना में कुबेरनेट डेटा की कल्पना करें

  1. Amazon ES कंसोल से प्राप्त करने के लिए किबाना डैशबोर्ड URL से कनेक्ट करें
  2. किबाना में फ्लुएंट द्वारा एकत्र किए गए लॉग को देखने के लिए, 'प्रबंधन' पर क्लिक करें और फिर 'किबना' के तहत 'सूचकांक पैटर्न' चुनें।
  3. डिफ़ॉल्ट इंडेक्स पैटर्न चुनें (लॉगस्टैश- *)
  4. अगला चरण पर क्लिक करें और 'टाइम फ़िल्टर फ़ील्ड नाम' (@timestamp) सेट करें और इंडेक्स पैटर्न बनाएँ चुनें
  5. अपने एप्लिकेशन लॉग देखने के लिए डिस्कवर पर क्लिक करें
  6. विज़ुअलाइज़ क्लिक करें और विज़ुअलाइज़ेशन बनाएं और पाई चुनें। निम्न फ़ील्ड भरें जैसा कि नीचे दिखाया गया है।
    • Logstash- * इंडेक्स चुनें और स्प्लिट स्लाइस पर क्लिक करें
    • एकत्रीकरण - महत्वपूर्ण शब्द
    • फ़ील्ड = Kubernetes.pod_name.keyword
    • आकार - १०

7. और परिवर्तन लागू करें

यह बात है! यह आप किबना में बनाए गए कुबेरनेट्स पॉड की कल्पना कर सकते हैं।

सारांश :

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

ऊपर दिए गए उदाहरण से पता चलता है कि एडब्ल्यूएस इलास्टिक खोज लॉगिंग और किबाना मॉनिटरिंग को धाराप्रवाह का उपयोग करके कुबेरनेट्स क्लस्टर में कैसे जोड़ा जाए।

यदि आपको यह कुबेरनेट ब्लॉग प्रासंगिक लगता है, तो देखें 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया टिप्पणी अनुभाग में इसका उल्लेख करें और हम आपके पास वापस आ जाएंगे।