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

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

उद्देश्य

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

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

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

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

  1. Launch Terminal पर क्लिक करें।

  1. ब्राउज़र में कुबेरनेट्स डैशबोर्ड खोलें:

    minikube dashboard
    
  2. केवल काटाकोडा वातावरण के लिए: टर्मिनल फलक के शीर्ष पर, प्लस(+) चिह्न पर क्लिक करें, और फिर Select port to view on Host 1 क्लिक करें।

  3. केवल काटाकोडा वातावरण के लिए: 30000 टाइप करें, और फिर Display Port क्लिक करें।

URL से डैशबोर्ड खोलें

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

minikube dashboard --url

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

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

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

    kubectl create deployment hello-node --image=k8s.gcr.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 कंटेनर को कुबेरनेट्स वर्चुअल नेटवर्क के बाहर से सुलभ बनाने के लिए,पॉड को कुबेरनेट्स Service(सर्विस) के रूप में बेनकाब करना होगा।

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

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

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

    इमेज के अंदर एप्लिकेशन कोड k8s.gcr.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
    
  4. केवल काटाकोडा वातावरण के लिए: प्लस(+) चिह्न पर क्लिक करें, और फिर Select port to view on Host 1 क्लिक करें।

  5. केवल काटाकोडा वातावरण के लिए: सेवाओं के आउटपुट में 8080 के विपरीत प्रदर्शित 5 अंकों का पोर्ट नंबर नोट करें। यह पोर्ट नंबर बेतरतीब ढंग से उत्पन्न होता है और यह आपके लिए भिन्न हो सकता है। पोर्ट नंबर टेक्स्ट बॉक्स में अपना नंबर टाइप करें, फिर डिस्प्ले पोर्ट पर क्लिक करें। पहले के उदाहरण का उपयोग करते हुए, आप 30369 टाइप करेंगे।

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

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

मिनीक्यूब टूल में बिल्ट-इन ऐडऑन(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 February 15, 2022 at 1:53 PM PST: Update content/hi/docs/tutorials/hello-minikube.md (065b1ba5ab)