160 lines
19 KiB
HTML
160 lines
19 KiB
HTML
---
|
|
title: डिप्लॉयमेंट बनाने के लिए kubectl का उपयोग करना
|
|
weight: 10
|
|
---
|
|
|
|
<!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>कुबेरनेट्स पर kubectl के साथ अपना पहला ऐप डिप्लॉय करें।</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="col-md-8">
|
|
<h3>कुबेरनेट्स डिप्लॉयमेंट</h3>
|
|
|
|
<p>एक बार जब आपके पास <a href="/hi/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/">कुबेरनेट्स क्लस्टर चल रहा हो</a>, तो आप इसके ऊपर अपने कंटेनरीकृत एप्लीकेशन को तैनात कर सकते हैं। ऐसा करने के लिए, आप कुबेरनेट्स <b>डिप्लॉयमेंट</b> कॉन्फ़िगरेशन बनाते हैं। डिप्लॉयमेंट कुबेरनेट्स को निर्देश देता है कि आपके आवेदन के उदाहरण कैसे बनाएं और अपडेट करें। एक बार जब आप एक डिप्लॉयमेंट बना लेते हैं, तो कुबेरनेट्स कंट्रोल प्लेन उस डिप्लॉयमेंट में शामिल एप्लिकेशन इंस्टेंस को क्लस्टर में अलग-अलग नोड्स पर चलाने के लिए शेड्यूल करता है।</p>
|
|
|
|
<p>एक बार एप्लिकेशन इंस्टेंस बन जाने के बाद, कुबेरनेट्स डिप्लॉयमेंट कंट्रोलर लगातार उन इंस्टेंस की निगरानी करता है। यदि किसी इंस्टेंस को होस्ट करने वाला नोड बंद हो जाता है या हटा दिया जाता है, तो डिप्लॉयमेंट कंट्रोलर क्लस्टर में इंस्टेंस को किसी अन्य नोड के इंस्टेंस से बदल देता है। <b>यह मशीन की विफलता या रख - रखाव को दूर करने के लिए एक स्व-उपचार तंत्र प्रदान करता है।</b></p>
|
|
|
|
<p>पूर्व-ऑर्केस्ट्रेशन की दुनिया में, इंस्टॉलेशन स्क्रिप्ट का उपयोग अक्सर एप्लीकेशन को शुरू करने के लिए किया जाता था, लेकिन वे मशीन की विफलता से पुनर्प्राप्ति की अनुमति नहीं देते हैं। कुबेरनेट्स डिप्लॉयमेंट आपके एप्लिकेशन इंस्टेंस को बनाकर और उन्हें नोड्स पर चालू रखते हुए, एप्लिकेशन प्रबंधन के लिए एक मौलिक रूप से अलग दृष्टिकोण प्रदान करता है। </p>
|
|
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<div class="content__box content__box_lined">
|
|
<h3>सारांश:</h3>
|
|
<ul>
|
|
<li>डिप्लॉयमेंट</li>
|
|
<li>kubectl</li>
|
|
</ul>
|
|
</div>
|
|
<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_02_first_app.svg"></p>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
|
|
<div class="row">
|
|
<div class="col-md-8">
|
|
<p>आप कुबेरनेट्स कमांड लाइन इंटरफेस, <b>kubectl</b> का उपयोग करके डिप्लॉयमेंट बना और प्रबंधित कर सकते हैं। kubectl क्लस्टर के साथ बातचीत करने के लिए कुबेरनेट्स एपीआई का उपयोग करता है। इस मॉड्यूल में, आप कुबेरनेट्स क्लस्टर पर आपके एप्लिकेशन चलाने वाले डिप्लॉयमेंट बनाने के लिए आवश्यक सबसे सामान्य kubectl कमांड सीखेंगे।</p>
|
|
|
|
<p>जब आप कोई डिप्लॉयमेंट बनाते हैं, तो आपको अपने एप्लिकेशन के लिए कंटेनर इमेज और चलाने के लिए इच्छित प्रतिकृतियों की संख्या निर्दिष्ट करने की आवश्यकता होगी। आप अपने कामकाज को अपडेट करके बाद में उस जानकारी को बदल सकते हैं; बूटकैंप के मॉड्यूल <a href="/hi/docs/tutorials/kubernetes-basics/scale/scale-intro/">5</a> और <a href="/hi/docs/tutorials/kubernetes-basics/update/update-intro/" >6</a> चर्चा करते हैं कि आप अपने डिप्लॉयमेंट को कैसे स्केल और अपडेट कर सकते हैं।</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-8">
|
|
<p>
|
|
अपने पहले डिप्लॉयमेंट के लिए, आप एक डॉकर कंटेनर में पैक किए गए हैलो-नोड एप्लिकेशन का उपयोग करेंगे जो सभी अनुरोधों को प्रतिध्वनित करने के लिए NGINX का उपयोग करता है। (यदि आपने पहले से हैलो-नोड एप्लिकेशन बनाने और कंटेनर का उपयोग करके इसे तैनात करने का प्रयास नहीं किया है, तो आप पहले <a href="/hi/docs/tutorials/hello-minikube/">हेलो Minikube ट्यूटोरियल</a> के निर्देशों का पालन करके ऐसा कर सकते हैं)।
|
|
<p>आपको kubectl भी इंस्टॉल करना होगा। यदि आपको इसे इंस्टॉल करने की आवश्यकता है, तो <a href="/hi/docs/tasks/tools/#kubectl">इंस्टॉल टूल्स</a> पर जाएं।</p>
|
|
<p>अब जब आप जान गए हैं कि डिप्लॉयमेंट क्या हैं, तो आइए अपना पहला ऐप परिनियोजित करें!</p>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
|
|
<div class="row">
|
|
<div class="col-md-8">
|
|
<h3>kubectl की मूल बातें</h3>
|
|
<p>कुबेक्टल कमांड का सामान्य प्रारूप है: <code>kubectl <i>action resource</i></code></p>
|
|
<p>यह निर्दिष्ट <em>संसाधन</em> (जैसे <tt>नोड</tt> या <tt>डिप्लॉयमेंट </tt>) पर निर्दिष्ट <em>क्रिया</em> (जैसे <tt>बनाना</tt>, <tt>वर्णन</tt> करना या <tt>हटाना</tt>) करता है। आप संभावित मापदंडों के बारे में अतिरिक्त जानकारी प्राप्त करने के लिए उपकमांड के बाद <code>-<span />-help</code> का उपयोग कर सकते हैं (उदाहरण के लिए: <code>kubectl get nodes --help</code>)।</p>
|
|
<p><b><code>kubectl version</code></b> कमांड चलाकर जांचें कि kubectl आपके क्लस्टर से बात करने के लिए कॉन्फ़िगर किया गया है।</p>
|
|
<p>जांचें कि kubectl स्थापित है और आप क्लाइंट और सर्वर दोनों संस्करण देख सकते हैं।</p>
|
|
<p>क्लस्टर में नोड्स देखने के लिए, <b><code>kubectl get nodes</code></b> कमांड चलाएँ।</p>
|
|
<p>आप उपलब्ध नोड्स देखते हैं। बाद में, Kubernetes नोड उपलब्ध संसाधनों के आधार पर हमारे एप्लिकेशन को कहां तैनात करना है इसका चयन करेगा।</p>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<a id="deploy an app"></a>
|
|
<h3>एक ऐप तैनात करें</h3>
|
|
<p>आइए अपना पहला ऐप कुबेरनेट्स पर <code>kubectl create deployment</code> कमांड के साथ तैनात करें। हमें डिप्लॉयमेंट नाम और ऐप छवि स्थान प्रदान करने की आवश्यकता है (डॉकर हब के बाहर होस्ट की गई छवियों के लिए पूर्ण रिपॉजिटरी यूआरएल शामिल करें)।</p>
|
|
<p><b><code>kubectl create deployment Kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1</code></b></p>
|
|
<p>बहुत बढ़िया! आपने अभी-अभी एक डिप्लॉयमेंट बनाकर अपना पहला एप्लिकेशन डेप्लॉये किया है। इसने आपके लिए कुछ चीज़ें निष्पादित कीं:</p>
|
|
<ul>
|
|
<li>एक उपयुक्त नोड की खोज की गई जहां एप्लिकेशन का एक उदाहरण चलाया जा सके (हमारे पास केवल 1 उपलब्ध नोड है)</li>
|
|
<li>एप्लिकेशन को उस नोड पर चलने के लिए शेड्यूल किया</li>
|
|
<li>आवश्यकता पड़ने पर नए नोड पर इंस्टेंस को पुनर्निर्धारित करने के लिए क्लस्टर को कॉन्फ़िगर किया गया</li>
|
|
</ul>
|
|
<p>अपने डिप्लॉयमेंट को सूचीबद्ध करने के लिए <code>kubectl get deployment</code> कमांड का उपयोग करें:</p>
|
|
<p><b><code>kubectl get deployments</code></b></p>
|
|
<p>हम देखते हैं कि आपके ऐप का एक इंस्टेंस 1 डिप्लॉयमेंट चला रहा है। इंस्टेंस आपके नोड पर एक कंटेनर के अंदर चल रहा है।</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<h3>ऐप देखें</h3>
|
|
<p>कुबेरनेट्स के अंदर चलने वाले पॉड एक निजी, पृथक नेटवर्क पर चल रहे हैं।
|
|
डिफ़ॉल्ट रूप से वे उसी कुबेरनेट्स क्लस्टर के भीतर अन्य पॉड्स और सेवाओं से दिखाई देते हैं, लेकिन उस नेटवर्क के बाहर नहीं।
|
|
जब हम <code>kubectl</code> का उपयोग करते हैं, तो हम अपने एप्लिकेशन के साथ संचार करने के लिए एक एपीआई एंडपॉइंट के माध्यम से बातचीत कर रहे होते हैं।</p>
|
|
<p>हम बाद में <a href="/hi/docs/tutorials/kubernetes-basics/expose/">मॉड्यूल 4</a> में कुबेरनेट्स क्लस्टर के बाहर आपके एप्लिकेशन को प्रदर्शित करने के अन्य विकल्पों पर चर्चा करेंगे।</p>
|
|
<p><code>kubectl proxy</code> कमांड एक प्रॉक्सी बना सकता है जो संचार को क्लस्टर-वाइड, निजी नेटवर्क में अग्रेषित करेगा। प्रॉक्सी को कंट्रोल-सी दबाकर समाप्त किया जा सकता है और यह चलने के दौरान कोई आउटपुट नहीं दिखाएगा।</p>
|
|
<p><strong>प्रॉक्सी चलाने के लिए आपको दूसरी टर्मिनल विंडो खोलनी होगी।</strong></p>
|
|
<p><b><code>kubectl proxy</b></code>
|
|
<p>अब हमारे होस्ट (टर्मिनल) और कुबेरनेट्स क्लस्टर के बीच एक कनेक्शन है। प्रॉक्सी इन टर्मिनलों से एपीआई तक सीधी पहुंच सक्षम बनाता है।</p>
|
|
<p>आप प्रॉक्सी एंडपॉइंट के माध्यम से होस्ट किए गए सभी एपीआई देख सकते हैं। उदाहरण के लिए, हम <code>curl</code> कमांड का उपयोग करके सीधे API के माध्यम से संस्करण को क्वेरी कर सकते हैं:</p>
|
|
<p><b><code>curl http://localhost:8001/version</code></b></p>
|
|
<div class="alert alert-info note callout" role="alert"><strong>नोट:</strong> यदि पोर्ट 8001 पहुंच योग्य नहीं है, तो सुनिश्चित करें कि <code>kubectl proxy</code> जिसे आपने ऊपर शुरू किया है दूसरे टर्मिनल में चल रहा है.</div>
|
|
<p>एपीआई सर्वर स्वचालित रूप से पॉड नाम के आधार पर प्रत्येक पॉड के लिए एक एंडपॉइंट बनाएगा, जिसे प्रॉक्सी के माध्यम से भी एक्सेस किया जा सकता है।</p>
|
|
<p>सबसे पहले हमें पॉड नाम प्राप्त करने की आवश्यकता है, और हम पर्यावरण चर <tt>POD_NAME</tt> में संग्रहित करेंगे:</p>
|
|
<p><b><code>export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{ {end}}')</code></b><br />
|
|
<b><code>echo पॉड का नाम: $POD_NAME</code></b></p>
|
|
<p>आप निम्न चलाकर प्रॉक्सी एपीआई के माध्यम से पॉड तक पहुंच सकते हैं:</p>
|
|
<p><b><code>curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/</code></b></p>
|
|
<p>नए डिप्लॉयमेंट को प्रॉक्सी का उपयोग किए बिना पहुंच योग्य बनाने के लिए, एक सेवा की आवश्यकता होती है जिसे <a href="/hi/docs/tutorials/kubernetes-basics/expose/">मॉड्यूल 4</a> में समझाया जाएगा .</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<p>
|
|
एक बार जब आप तैयार हो जाएं, तो <a href='/hi/docs/tutorials/kubernetes-basics/explore/explore-intro/' title='Viewing Pods and Nodes'>पॉड्स और नोड्स देखना</a> पर आगे बढ़ें।
|
|
</p>
|
|
</div>
|
|
|
|
</main>
|
|
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|