---
title: हेलो मिनीक्यूब
content_type: tutorial
weight: 5
card:
  name: tutorials
  weight: 10
---

<!-- overview -->

यह ट्यूटोरियल आपको मिनिक्यूब का उपयोग करते हुए कुबेरनेट्स पर एक सैम्पल ऐप चलाने का तरीका दिखाता है। ट्यूटोरियल एक कंटेनर छवि प्रदान करता है जो सभी अनुरोधों को प्रतिध्वनित करने के लिए NGINX का उपयोग करता है। 

## {{% heading "objectives" %}}

* मिनीक्यूब में एक नमूना एप्लीकेशन डेप्लॉय करें।
* ऐप को चलाएं।
* एप्लिकेशन लॉग देखें।

## {{% heading "prerequisites" %}}


यह ट्यूटोरियल मानता है कि आपने पहले ही `मिनीक्यूब` सेट कर लिया है।
इंस्टॉलेशन निर्देशों के लिए [मिनीक्यूब स्टार्ट](https://minikube.sigs.k8s.io/docs/start/) में __Step 1__ देखें।
{{<note>}}
केवल __Step 1, इंस्टालेशन__ में दिए गए निर्देशों का पालन करें। बाकी निर्देश इस पेज पर कवर किया गया है।
{{</note>}}

आपको `kubectl` भी इंस्टॉल करना होगा। स्थापाना निर्देश के लिए [Kubectl स्थापित करें](/hi/docs/tasks/tools/#kubectl) देखें। 

<!-- lessoncontent -->

## एक मिनीक्यूब क्लस्टर बनाएं

```shell
minikube start
```

## कुबेरनेट्स डैशबोर्ड खोलें:

कुबेरनेट्स डैशबोर्ड खोलें। आप इसे दो अलग-अलग तरीकों से कर सकते हैं:

{{< tabs name="dashboard" >}}
{{% tab name="ब्राउज़र से लॉन्च करें" %}}
एक **नया** टर्मिनल खोलें, और चलाएँ:
```shell
# एक नया टर्मिनल प्रारंभ करें, और इस कमांड को चालू छोड़ दें।
minikube dashboard
```

अब, उस टर्मिनल पर वापस जाएँ जहाँ आपने `minikube start` चलाया था।

{{< note >}}
`dashboard` कमांड डैशबोर्ड ऐड-ऑन को इस्तेमाल के लिए तैयार करता है और प्रॉक्सी को डिफ़ॉल्ट वेब ब्राउज़र में खोलता है।
आप डैशबोर्ड पर कुबेरनेट्स संसाधन जैसे डेप्लॉयमेंट और सर्विस बना सकते हैं।

आमतौर पर, डैशबोर्ड केवल आंतरिक कुबेरनेट्स वर्चुअल नेटवर्क के भीतर से ही पहुँचा जा सकता है।
डैशबोर्ड को कुबेरनेट्स वर्चुअल नेटवर्क के बाहर से एक्सेस करने योग्य बनाने के लिए `dashboard` कमांड एक अस्थायी प्रॉक्सी बनाता है।

प्रॉक्सी को रोकने और प्रक्रिया से बाहर निकलने के लिए `Ctrl+C` का प्रयोग करें।
कमांड से बाहर निकलने के बाद, डैशबोर्ड कुबेरनेट्स क्लस्टर में चलता रहता है। 
आप डैशबोर्ड तक पहुंचने और प्रॉक्सी बनाने के लिए फिर से `dashboard` कमांड चला सकते हैं।
{{< /note >}}

{{% /tab %}}
{{% tab name="URL कॉपी और पेस्ट करें" %}}

यदि आप वेब ब्राउज़र नहीं खोलना चाहते हैं, तो URL प्राप्त करने के लिए url फ़्लैग के साथ `dashboard` कमांड चलाएँ:

```shell
minikube dashboard --url
```

अब, उस टर्मिनल पर वापस जाएँ जहाँ आपने `मिनीक्यूब स्टार्ट` चलाया था।

{{% /tab %}}
{{< /tabs >}}

## डेप्लॉयमेंट बनाएँ

कुबेरनेट्स [*पॉड*](/docs/concepts/workloads/pods/) एक या अधिक कंटेनरों का एक समूह है,
जो प्रशासन और नेटवर्किंग के उद्देश्यों के लिए एक साथ बंधे होते हैं। इस ट्यूटोरियल के 
पॉड में केवल एक कंटेनर है। कुबेरनेट्स 
[*डेप्लॉयमेंट*](/docs/concepts/workloads/controllers/deployment/) आपके पॉड के स्वास्थ्य की
जाँच करता है और यदि पॉड बंद हो जाता है तो पॉड के कंटेनर को पुनः आरंभ करता है।
पॉड्स के निर्माण और स्केलिंग को प्रबंधित करने के लिए डेप्लॉयमेंट अनुशंसित तरीका है।

1. पॉड को प्रबंधित करने वाला डेप्लॉयमेंट बनाने के लिए `kubectl create` कमांड का उपयोग करें। पॉड 
प्रदान की गई डॉकर इमेज के आधार पर एक कंटेनर चलाता है।

    ```shell
    kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.53 -- /agnhost netexec --http-port=8080
    ```

2. डेप्लॉयमेंट देखें:

    ```shell
    kubectl get deployments
    ```

    आउटपुट कुछ इस समान होगा:

    ```
    NAME         READY   UP-TO-DATE   AVAILABLE   AGE
    hello-node   1/1     1            1           1m
    ```

3. पॉड देखें:

    ```shell
    kubectl get pods
    ```

    आउटपुट कुछ इस समान होगा:

    ```
    NAME                          READY     STATUS    RESTARTS   AGE
    hello-node-5f76cf6ccf-br9b5   1/1       Running   0          1m
    ```

4. क्लस्टर इवेंट देखें:

    ```shell
    kubectl get events
    ```

5. `kubectl` कॉन्फ़िगरेशन देखें:

    ```shell
    kubectl config view
    ```

{{< note >}}
`kubectl` कमांड के बारे में अधिक जानकारी के लिए [kubectl अवलोकन](/docs/reference/kubectl/overview/) देखें।
{{< /note >}}

## सर्विस बनाएं

आमतौर पर, पॉड कुबेरनेट्स क्लस्टर के भीतर अपने आंतरिक IP पते से ही पहुँचा जा सकता है।
`hello-node` कंटेनर को कुबेरनेट्स वर्चुअल नेटवर्क के
बाहर से सुलभ बनाने के लिए,पॉड को
कुबेरनेट्स [*सर्विस*](/docs/concepts/services-networking/service/) के रूप में बेनकाब करना होगा।

1. `kubectl expose` कमांड का उपयोग करके पॉड को सार्वजनिक इंटरनेट पर एक्सपोज़ करें:

    ```shell
    kubectl expose deployment hello-node --type=LoadBalancer --port=8080
    ```

    `--type=LoadBalancer` फ्लैग इंगित करता है कि आप क्लस्टर के बाहर 
    अपने सर्विस को प्रदर्शित करना चाहते हैं।
    
    इमेज के अंदर एप्लिकेशन कोड `registry.k8s.io/echoserver` केवल TCP पोर्ट 8080 पर सुनता है। 
    यदि आपने किसी भिन्न पोर्ट को एक्सपोज़ करने के लिए `kubectl एक्सपोज़` का उपयोग किया है, तो क्लाइंट उस अन्य पोर्ट से जुड़ नहीं सकते।

2. आपके द्वारा बनाई गई सर्विस देखें:

    ```shell
    kubectl get service
    ```

    आउटपुट कुछ इस समान होगा:

    ```
    NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    hello-node   LoadBalancer   10.108.144.78   <pending>     8080:30369/TCP   21s
    kubernetes   ClusterIP      10.96.0.1       <none>        443/TCP          23m
    ```

    लोड बैलेंसर्स का समर्थन करने वाले क्लाउड प्रदाताओं पर, सर्विस तक पहुंचने के 
    लिए एक बाहरी IP पते का प्रावधान किया जाएगा। मिनीक्यूब पर,
    `LoadBalancer` टाइप `minikube service` कमांड से सर्विस को
    पहुंच योग्य बनाता है।     

3. इस कमांड को चलायें:

    ```shell
    minikube service hello-node
    ```

    यह कमांड एक ब्राउज़र विंडो खोलता है जो ऐप की प्रतिक्रिया दिखाती है।

## ऐडऑन सक्षम करें

मिनीक्यूब टूल में बिल्ट-इन {{< glossary_tooltip text="ऐडऑन" term_id="addons" >}} (add on) का एक समूह
शामिल है जिसे स्थानीय कुबेरनेट्स वातावरण में सक्षम, अक्षम और खोला जा सकता है।

1. वर्तमान में उपलब्ध ऐडऑन की सूची:

    ```shell
    minikube addons list
    ```

    आउटपुट कुछ इस समान होगा:

    ```
    addon-manager: enabled
    dashboard: enabled
    default-storageclass: enabled
    efk: disabled
    freshpod: disabled
    gvisor: disabled
    helm-tiller: disabled
    ingress: disabled
    ingress-dns: disabled
    logviewer: disabled
    metrics-server: disabled
    nvidia-driver-installer: disabled
    nvidia-gpu-device-plugin: disabled
    registry: disabled
    registry-creds: disabled
    storage-provisioner: enabled
    storage-provisioner-gluster: disabled
    ```

2. एक ऐडऑन सक्षम करें, उदाहरण के लिए, `metrics-server`:

    ```shell
    minikube addons enable metrics-server
    ```

    आउटपुट कुछ इस समान होगा:

    ```
    The 'metrics-server' addon is enabled
    ```

3. आपके द्वारा बनाई गई पॉड और सर्विस देखें:

    ```shell
    kubectl get pod,service -n kube-system
    ```

    आउटपुट कुछ इस समान होगा:

    ```
    NAME                                        READY     STATUS    RESTARTS   AGE
    pod/coredns-5644d7b6d9-mh9ll                1/1       Running   0          34m
    pod/coredns-5644d7b6d9-pqd2t                1/1       Running   0          34m
    pod/metrics-server-67fb648c5                1/1       Running   0          26s
    pod/etcd-minikube                           1/1       Running   0          34m
    pod/influxdb-grafana-b29w8                  2/2       Running   0          26s
    pod/kube-addon-manager-minikube             1/1       Running   0          34m
    pod/kube-apiserver-minikube                 1/1       Running   0          34m
    pod/kube-controller-manager-minikube        1/1       Running   0          34m
    pod/kube-proxy-rnlps                        1/1       Running   0          34m
    pod/kube-scheduler-minikube                 1/1       Running   0          34m
    pod/storage-provisioner                     1/1       Running   0          34m

    NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
    service/metrics-server         ClusterIP   10.96.241.45    <none>        80/TCP              26s
    service/kube-dns               ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP       34m
    service/monitoring-grafana     NodePort    10.99.24.54     <none>        80:30002/TCP        26s
    service/monitoring-influxdb    ClusterIP   10.111.169.94   <none>        8083/TCP,8086/TCP   26s
    ```

4. `metrics-server`अक्षम करें:

    ```shell
    minikube addons disable metrics-server
    ```

    आउटपुट कुछ इस समान होगा:

    ```
    metrics-server was successfully disabled
    ```

## साफ - सफाई

अब आप अपने क्लस्टर में बनाए गए संसाधनों को साफ कर सकते हैं:

```shell
kubectl delete service hello-node
kubectl delete deployment hello-node
```

वैकल्पिक रूप से, मिनिक्यूब वर्चुअल मशीन (VM) को बंद करें:

```shell
minikube stop
```

वैकल्पिक रूप से, मिनिक्यूब VM को डिलीट करें:

```shell
minikube delete
```

## {{% heading "whatsnext" %}}


* [डेप्लॉयमेंट ऑब्जेक्ट](/docs/concepts/workloads/controllers/deployment/) के बारे में अधिक जाने।
* [एप्लीकेशन डेप्लॉय](/docs/tasks/run-application/run-stateless-application-deployment/) करने के बारे में अधिक जाने।
* [सर्विस ऑब्जेक्ट](/docs/concepts/services-networking/service/) के बारे में अधिक जाने।
