# पॉड्स और नोड्स की जांच करना

LLMS index: [llms.txt](/llms.txt)

---

<!DOCTYPE html>

<html lang="hi">

<body>

<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">


<div class="layout" id="top">

    <main class="content">

        <div class="row">

     <div class="col-md-8">
          <h3>उद्देश्य</h3>
                <ul>
                    <li>कुबेरनेट्स पॉड्स के बारे में जानें।</li>
                    <li>कुबेरनेट्स नोड्स के बारे में जानें।</li>
                    <li>डिप्लॉयड एप्लीकेशन का समस्या निवारण करें।</li>
                </ul>
            </div>

            <div class="col-md-8">
                <h2>कुबेरनेट्स पॉड्स</h2>
                <p>जब आपने मॉड्यूल <a href="/hi/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/">2</a> में एक एप्लीकेशन बनाया, तो कुबेरनेट्स ने आपके एप्लिकेशन इंस्टेंस को होस्ट करने के लिए एक <b>पॉड</b> बनाया। पॉड एक कुबेरनेट्स एब्स्ट्रैक्शन है जो एक या अधिक एप्लिकेशन कंटेनरों (जैसे डॉकर) के समूह और उन कंटेनरों के लिए कुछ साझा संसाधनों का प्रतिनिधित्व करता है। उन संसाधनों में शामिल हैं:</p>
                <ul>
                    <li>साझा स्टोरेज, वॉल्यूम के रूप में</li>
                    <li>नेटवर्किंग, एक अद्वितीय क्लस्टर IP पते के रूप में</li>
                    <li>प्रत्येक कंटेनर को चलाने के तरीके के बारे में जानकारी, जैसे कंटेनर इमेज संस्करण या उपयोग करने के लिए विशिष्ट पोर्ट</li>
                </ul>
                <p>एक पॉड एक एप्लिकेशन-विशिष्ट "लॉजिकल होस्ट" मॉडल करता है और इसमें विभिन्न एप्लिकेशन कंटेनर हो सकते हैं जो अपेक्षाकृत कसकर युग्मित होते हैं। उदाहरण के लिए, एक पॉड में आपके Node.js ऐप के साथ-साथ एक अलग कंटेनर दोनों शामिल हो सकते हैं जो Node.js वेबसर्वर द्वारा प्रकाशित किए जाने वाले डेटा को फीड करता है। पॉड में कंटेनर एक IP एड्रेस और पोर्ट स्पेस साझा करते हैं जो हमेशा सह-स्थित और सह-अनुसूचित होते हैं, और एक ही नोड पर एक साझा संदर्भ में चलते हैं।</p>

            <p>कुबेरनेट्स प्लेटफॉर्म पर पॉड्स सबसे छोटे इकाई हैं। जब हम कुबेरनेट्स पर एक डिप्लॉयमेंट बनाते हैं, तो वह डिप्लॉयमेंट अपने अंदर कंटेनरों के साथ पॉड बनाता है (नाकि सीधे कंटेनर)। प्रत्येक पॉड उस नोड से जुड़ा होता है जहां वह निर्धारित होता है, और समाप्ति (रीस्टार्ट नीति के अनुसार) या विलोपन तक वहीं रहता है। नोड की विफलता के मामले में, क्लस्टर में अन्य उपलब्ध नोड्स पर समान पॉड्स शेड्यूल किए जाते हैं।</p>

            </div>
            <div class="col-md-4">
                <div class="content__box content__box_lined">
                    <h3>सारांश:</h3>
                    <ul>
                        <li>पॉड्स</li>
                        <li>नोड्स</li>
                        <li>kubectl के मुख्य कमांड</li>
                    </ul>
                </div>
                <div class="content__box content__box_fill">
                        <p><i>
                            एक पॉड एक या एक से अधिक एप्लिकेशन कंटेनरों (जैसे डॉकर) का एक समूह है और इसमें साझा स्टोरेज (वॉल्यूम), IP पता और उन्हें चलाने के तरीके के बारे में जानकारी शामिल होती है ।
                        </i></p>
                </div>
            </div>
        </div>
        <br>

        <div class="row">
            <div class="col-md-8">
                <h2 style="color: #3771e3;">पॉड्स अवलोकन</h2>
            </div>
        </div>

        <div class="row">
            <div class="col-md-8">
                <p><img src="/docs/tutorials/kubernetes-basics/public/images/module_03_pods.svg"></p>
            </div>
        </div>
        <br>

        <div class="row">
            <div class="col-md-8">
                <h2>नोड्स</h2>
              <p>एक पॉड हमेशा एक <b>नोड</b> पर चलता है। कुबेरनेट्स में एक नोड एक कार्यकर्ता मशीन है और क्लस्टर के आधार पर वर्चुअल या भौतिक मशीन हो सकती है। प्रत्येक नोड को कण्ट्रोल प्लेन द्वारा प्रबंधित किया जाता है। एक नोड में कई पॉड हो सकते हैं, और कुबेरनेट्स कंट्रोल प्लेन स्वचालित रूप से क्लस्टर में नोड्स में पॉड्स को शेड्यूल करने का काम संभालता है। कंट्रोल प्लेन का स्वचालित शेड्यूलिंग प्रत्येक नोड पर उपलब्ध संसाधनों को ध्यान में रखता है।</p>

                <p>प्रत्येक कुबेरनेट्स नोड पर कम से कम ये चलते हैं:</p>
                <ul>
                    <li>क्यूबलेट, कुबेरनेट्स कण्ट्रोल प्लेन और नोड के बीच संचार के लिए जिम्मेदार एक प्रक्रिया; यह पॉड्स और मशीन पर चलने वाले कंटेनरों का प्रबंधन करता है।</li>
                    <li>एक कंटेनर रनटाइम (जैसे डॉकर), एक रजिस्ट्री से कंटेनर इमेज को पुल करने, कंटेनर को अनपैक करने और एप्लिकेशन चलाने के लिए।</li>
                </ul>

            </div>
            <div class="col-md-4">
                <div class="content__box content__box_fill">
                    <p><i> कंटेनरों को केवल एक ही पॉड में एक साथ शेड्यूल किया जाना चाहिए यदि वे कसकर युग्मित हैं और डिस्क जैसे संसाधनों को साझा करने की आवश्यकता है। </i></p>
                </div>
            </div>
        </div>

        <br>

        <div class="row">
            <div class="col-md-8">
                <h2 style="color: #3771e3;">नोड अवलोकन</h2>
            </div>
        </div>

        <div class="row">
            <div class="col-md-8">
                <p><img src="/docs/tutorials/kubernetes-basics/public/images/module_03_nodes.svg"></p>
            </div>
        </div>
        <br>

        <div class="row">
            <div class="col-md-8">
                <h2>kubectl के साथ समस्या निवारण</h2>
                <p>मॉड्यूल <a href="/hi/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/">2</a> में, आपने कमांड लाइन इंटरफ़ेस का उपयोग किया है। डेप्लॉयड एप्लीकेशन और उनके एनवायरनमेंट के बारे में जानकारी प्राप्त करने के लिए आप मॉड्यूल 3 में इसका उपयोग करना जारी रखेंगे। सबसे आम ऑपरेशन निम्नलिखित kubectl कमांड के साथ किया जा सकता है:</p>
                <ul>
                    <li><b>kubectl get</b> - संसाधनों की सूची बनाएं</li>
                    <li><b>kubectl describe</b> - संसाधन के बारे में विस्तृत जानकारी दिखाएं</li>
                    <li><b>kubectl logs</b> - पॉड में कंटेनर के लॉग प्रिंट करें</li>
                    <li><b>kubectl exec</b> - पॉड में कंटेनर पर कमांड चलाए</li>
                </ul>

                <p>आप इन कमांड का उपयोग यह देखने के लिए कर सकते हैं कि एप्लिकेशन कब डिप्लॉय किए गए थे, उनकी वर्तमान स्थिति क्या है, वे कहां चल रहे हैं और उनके कॉन्फ़िगरेशन क्या हैं।</p>

                <p>अब जब हम अपने क्लस्टर कॉम्पोनेन्ट और कमांड लाइन के बारे में जानते हैं, तो आइए हमारे एप्लिकेशन को देखें।</p>

            </div>
            <div class="col-md-4">
                <div class="content__box content__box_fill">
                    <p><i> कुबेरनेट्स में एक नोड एक कार्यकर्ता मशीन है और क्लस्टर के आधार पर एक वीएम या वर्चुअल मशीन हो सकती है। एक नोड पर कई पॉड चल सकते हैं। </i></p>
                </div>
            </div>
        </div>

        <div class="row">
            <div class="col-md-12">
                <h3>एप्लिकेशन कॉन्फ़िगरेशन की जाँच करें</h3>
                <p>आइए सत्यापित करें कि पिछले परिदृश्य में हमने जो एप्लिकेशन तैनात किया था वह चल रहा है। हम <code>kubectl get</code> कमांड का उपयोग करेंगे और मौजूदा पॉड्स की तलाश करेंगे:</p>
                <p><b><code>kubectl get pods</code></b></p>
                <p>यदि कोई पॉड्स नहीं चल रहा है, तो कृपया कुछ सेकंड प्रतीक्षा करें और पॉड्स को फिर से सूचीबद्ध करें। एक बार जब आप एक पॉड को चलता हुआ देख लें तो आप जारी रख सकते हैं।</p>
                <p>इसके बाद, यह देखने के लिए कि उस पॉड के अंदर कौन से कंटेनर हैं और उन कंटेनरों को बनाने के लिए कौन सी छवियों का उपयोग किया जाता है, हम <code>kubectl describe pods</code> कमांड चलाते हैं:</p>
                <p><b><code>kubectl describe pods है</code></b></p>
                <p>हम यहां पॉड के कंटेनर के बारे में विवरण देखते हैं: आईपी पता, उपयोग किए गए पोर्ट और पॉड के जीवनचक्र से संबंधित घटनाओं की एक सूची।</p>
                <p><tt>वर्णन</tt> उपकमांड का आउटपुट व्यापक है और इसमें कुछ अवधारणाएं शामिल हैं जिन्हें हमने अभी तक नहीं समझाया है, लेकिन चिंता न करें, वे इस बूटकैंप के अंत तक परिचित हो जाएंगे।</p >
                <p><em><strong>ध्यान दें :</strong> <tt>वर्णन</tt> उपकमांड का उपयोग नोड्स, पॉड्स और तैनाती सहित अधिकांश कुबेरनेट्स प्राइमेटिव्स के बारे में विस्तृत जानकारी प्राप्त करने के लिए किया जा सकता है। वर्णन आउटपुट को मानव पठनीय बनाने के लिए डिज़ाइन किया गया है, न कि इसके विरुद्ध स्क्रिप्ट किए जाने के लिए।</em></p>
            </div>
        </div>

        <div class="row">
            <div class="col-md-12">
                <h3>ऐप को टर्मिनल में दिखाएं</h3>
                 <p>याद रखें कि पॉड्स एक अलग, निजी नेटवर्क में चल रहे हैं - इसलिए हमें प्रॉक्सी एक्सेस की आवश्यकता है
                 उनके लिए ताकि हम डिबग कर सकें और उनके साथ बातचीत कर सकें। ऐसा करने के लिए, हम <strong>दूसरे टर्मिनल</strong> में प्रॉक्सी चलाने के लिए <code>kubectl proxy</code> कमांड का उपयोग करेंगे। एक नई टर्मिनल विंडो खोलें, और उस नए टर्मिनल में, चलाएँ:</p>
                 <p><code><b>kubectl proxy</b></code></p>
                 <p>अब फिर से, हम पॉड नाम प्राप्त करेंगे और उस पॉड को सीधे प्रॉक्सी के माध्यम से क्वेरी करेंगे।
                 पॉड नाम प्राप्त करने और उसे <tt>POD_NAME</tt> पर्यावरण चर में संग्रहीत करने के लिए:</p>
                 <p><code><b>export POD_NAME='$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{'\n'}} {{end}}')"</b></code><br />
                 <code><b>echo "Name of Pod: $POD_NAME"</b></code></p>
                 <p>हमारे एप्लिकेशन का आउटपुट देखने के लिए, <code>curl</code> अनुरोध चलाएँ:</p>
                 <p><code><b>curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME:8080/proxy/</b></code></p>
                 <p>url पॉड के एपीआई का मार्ग है।</p>
            </div>
        </div>

        <div class="row">
            <div class="col-md-12">
                <h3>कंटेनर लॉग देखें</h3>
                 <p>कुछ भी जो एप्लिकेशन सामान्य रूप से मानक आउटपुट पर भेजता है वह पॉड के भीतर कंटेनर के लिए लॉग बन जाता है। हम <code>kubectl logs</code> कमांड का उपयोग करके इन लॉग्स को पुनः प्राप्त कर सकते हैं:</p>
                 <p><code><b>kubectl logs "$POD_NAME"</b></code></p>
                 <p><em><strong>नोट :</strong> हमें कंटेनर नाम निर्दिष्ट करने की आवश्यकता नहीं है, क्योंकि हमारे पास पॉड के अंदर केवल एक कंटेनर है।</em></p>
            </div>
        </div>

        <div class="row">
            <div class="col-md-12">
                <h3>कंटेनर पर कमांड निष्पादित करना</h3>
                 <p>पॉड चालू होने और चलने के बाद हम सीधे कंटेनर पर कमांड निष्पादित कर सकते हैं।
                 इसके लिए, हम <code>exec</code> उपकमांड का उपयोग करते हैं और एक पैरामीटर के रूप में पॉड के नाम का उपयोग करते हैं। आइए पर्यावरण चरों को सूचीबद्ध करें:</p>
                 <p><code><b>kubectl exec "$POD_NAME" -- env</b></code></p>
                 <p>फिर से, यह उल्लेख करने योग्य है कि कंटेनर का नाम स्वयं छोड़ा जा सकता है क्योंकि हमारे पास पॉड में केवल एक ही कंटेनर है।</p>
                 <p>आगे आइए पॉड के कंटेनर में एक बैश सत्र शुरू करें:</p>
                 <p><code><b>kubectl exec -ti $POD_NAME -- bash</b></code></p>
                 <p>अब हमारे पास कंटेनर पर एक खुला कंसोल है जहां हम अपना NodeJS एप्लिकेशन चलाते हैं। ऐप का सोर्स कोड <tt>server.js</tt> फ़ाइल में है:</p>
                 <p><code><b>cat server.js</b></code></p>
                 <p>आप <tt>curl</tt> कमांड चलाकर जांच सकते हैं कि एप्लिकेशन चालू है:</p>
                 <p><code><b>curl http://localhost:8080</b></code></p>
                 <p><em><strong>ध्यान दें :</strong> यहां हमने <tt>localhost</tt> का उपयोग किया है क्योंकि हमने NodeJS पॉड के अंदर कमांड निष्पादित किया है। यदि आप localhost:8080 से कनेक्ट नहीं हो सकते हैं, तो यह सुनिश्चित करने के लिए जांचें कि आपने <code>kubectl exec</code> कमांड चलाया है और पॉड के भीतर से कमांड लॉन्च कर रहे हैं</em></p>
                 <p>अपना कंटेनर कनेक्शन बंद करने के लिए, <code><b>exit</b></code> टाइप करें।</p>
            </div>
        </div>

        <div class="row">
            <p>
                एक बार जब आप तैयार हो जाएं, तो आगे बढ़ें <a href='/hi/docs/tutorials/kubernetes-basics/expose/expose-intro/' title='Using A Service To Expose Your App'>अपने ऐप को उजागर करने के लिए एक सेवा का उपयोग करना</a>|
            </p>
        </div>

    </main>

</div>

</body>
</html>
