Information in this document may be out of date

This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: Hello Minikube

हेलो मिनीक्यूब

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

उद्देश्य

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

शुरू करने से पहले

यह ट्यूटोरियल मानता है कि आपने पहले ही मिनीक्यूब सेट कर लिया है। इंस्टॉलेशन निर्देशों के लिए मिनीक्यूब स्टार्ट में Step 1 देखें।

आपको kubectl भी इंस्टॉल करना होगा। स्थापाना निर्देश के लिए Kubectl स्थापित करें देखें।

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

minikube start

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

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

एक नया टर्मिनल खोलें, और चलाएँ:

# एक नया टर्मिनल प्रारंभ करें, और इस कमांड को चालू छोड़ दें।
minikube dashboard

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

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

minikube dashboard --url

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

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

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

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

    kubectl create deployment hello-node --image=registry.k8s.io/echoserver:1.4
    
  2. डेप्लॉयमेंट देखें:

    kubectl get deployments
    

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

    NAME         READY   UP-TO-DATE   AVAILABLE   AGE
    hello-node   1/1     1            1           1m
    
  3. पॉड देखें:

    kubectl get pods
    

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

    NAME                          READY     STATUS    RESTARTS   AGE
    hello-node-5f76cf6ccf-br9b5   1/1       Running   0          1m
    
  4. क्लस्टर इवेंट देखें:

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

    kubectl config view
    

सर्विस बनाएं

आमतौर पर, पॉड कुबेरनेट्स क्लस्टर के भीतर अपने आंतरिक IP पते से ही पहुँचा जा सकता है। hello-node कंटेनर को कुबेरनेट्स वर्चुअल नेटवर्क के बाहर से सुलभ बनाने के लिए,पॉड को कुबेरनेट्स सर्विस के रूप में बेनकाब करना होगा।

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

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

    --type=LoadBalancer फ्लैग इंगित करता है कि आप क्लस्टर के बाहर अपने सर्विस को प्रदर्शित करना चाहते हैं।

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

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

    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. इस कमांड को चलायें:

    minikube service hello-node
    

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

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

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

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

    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:

    minikube addons enable metrics-server
    

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

    The 'metrics-server' addon is enabled
    
  3. आपके द्वारा बनाई गई पॉड और सर्विस देखें:

    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अक्षम करें:

    minikube addons disable metrics-server
    

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

    metrics-server was successfully disabled
    

साफ - सफाई

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

kubectl delete service hello-node
kubectl delete deployment hello-node

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

minikube stop

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

minikube delete

आगे क्या है

Last modified June 20, 2024 at 12:44 PM PST: Sync changest from andygol/k8s-website (36d05bc8a1)