आप इस कुबेरनेट्स संस्करण के लिए प्रलेखन देख रहे हैं: v1.30
Kubernetes v1.30 प्रलेखन अब सक्रिय रूप से मेंटेन नहीं है। वर्तमान में आप जो संस्करण देख रहे हैं वह एक स्टैटिक स्नैपशॉट है। अप-टू-डेट प्रलेखन के लिए, देखें नवीनतम संस्करण।
हेलो मिनीक्यूब
यह ट्यूटोरियल आपको मिनिक्यूब का उपयोग करते हुए कुबेरनेट्स पर एक सैम्पल ऐप चलाने का तरीका दिखाता है। ट्यूटोरियल एक कंटेनर छवि प्रदान करता है जो सभी अनुरोधों को प्रतिध्वनित करने के लिए NGINX का उपयोग करता है।
उद्देश्य
- मिनीक्यूब में एक नमूना एप्लीकेशन डेप्लॉय करें।
- ऐप को चलाएं।
- एप्लिकेशन लॉग देखें।
शुरू करने से पहले
यह ट्यूटोरियल मानता है कि आपने पहले ही मिनीक्यूब
सेट कर लिया है।
इंस्टॉलेशन निर्देशों के लिए मिनीक्यूब स्टार्ट में Step 1 देखें।
टिप्पणी:
केवल Step 1, इंस्टालेशन में दिए गए निर्देशों का पालन करें। बाकी निर्देश इस पेज पर कवर किया गया है।आपको kubectl
भी इंस्टॉल करना होगा। स्थापाना निर्देश के लिए Kubectl स्थापित करें देखें।
एक मिनीक्यूब क्लस्टर बनाएं
minikube start
कुबेरनेट्स डैशबोर्ड खोलें:
कुबेरनेट्स डैशबोर्ड खोलें। आप इसे दो अलग-अलग तरीकों से कर सकते हैं:
एक नया टर्मिनल खोलें, और चलाएँ:
# एक नया टर्मिनल प्रारंभ करें, और इस कमांड को चालू छोड़ दें।
minikube dashboard
अब, उस टर्मिनल पर वापस जाएँ जहाँ आपने minikube start
चलाया था।
टिप्पणी:
dashboard
कमांड डैशबोर्ड ऐड-ऑन को इस्तेमाल के लिए तैयार करता है और प्रॉक्सी को डिफ़ॉल्ट वेब ब्राउज़र में खोलता है।
आप डैशबोर्ड पर कुबेरनेट्स संसाधन जैसे डेप्लॉयमेंट और सर्विस बना सकते हैं।
आमतौर पर, डैशबोर्ड केवल आंतरिक कुबेरनेट्स वर्चुअल नेटवर्क के भीतर से ही पहुँचा जा सकता है।
डैशबोर्ड को कुबेरनेट्स वर्चुअल नेटवर्क के बाहर से एक्सेस करने योग्य बनाने के लिए dashboard
कमांड एक अस्थायी प्रॉक्सी बनाता है।
प्रॉक्सी को रोकने और प्रक्रिया से बाहर निकलने के लिए Ctrl+C
का प्रयोग करें।
कमांड से बाहर निकलने के बाद, डैशबोर्ड कुबेरनेट्स क्लस्टर में चलता रहता है।
आप डैशबोर्ड तक पहुंचने और प्रॉक्सी बनाने के लिए फिर से dashboard
कमांड चला सकते हैं।
यदि आप वेब ब्राउज़र नहीं खोलना चाहते हैं, तो URL प्राप्त करने के लिए url फ़्लैग के साथ dashboard
कमांड चलाएँ:
minikube dashboard --url
अब, उस टर्मिनल पर वापस जाएँ जहाँ आपने मिनीक्यूब स्टार्ट
चलाया था।
डेप्लॉयमेंट बनाएँ
कुबेरनेट्स पॉड एक या अधिक कंटेनरों का एक समूह है, जो प्रशासन और नेटवर्किंग के उद्देश्यों के लिए एक साथ बंधे होते हैं। इस ट्यूटोरियल के पॉड में केवल एक कंटेनर है। कुबेरनेट्स डेप्लॉयमेंट आपके पॉड के स्वास्थ्य की जाँच करता है और यदि पॉड बंद हो जाता है तो पॉड के कंटेनर को पुनः आरंभ करता है। पॉड्स के निर्माण और स्केलिंग को प्रबंधित करने के लिए डेप्लॉयमेंट अनुशंसित तरीका है।
-
पॉड को प्रबंधित करने वाला डेप्लॉयमेंट बनाने के लिए
kubectl create
कमांड का उपयोग करें। पॉड प्रदान की गई डॉकर इमेज के आधार पर एक कंटेनर चलाता है।kubectl create deployment hello-node --image=registry.k8s.io/echoserver:1.4
-
डेप्लॉयमेंट देखें:
kubectl get deployments
आउटपुट कुछ इस समान होगा:
NAME READY UP-TO-DATE AVAILABLE AGE hello-node 1/1 1 1 1m
-
पॉड देखें:
kubectl get pods
आउटपुट कुछ इस समान होगा:
NAME READY STATUS RESTARTS AGE hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m
-
क्लस्टर इवेंट देखें:
kubectl get events
-
kubectl
कॉन्फ़िगरेशन देखें:kubectl config view
सर्विस बनाएं
आमतौर पर, पॉड कुबेरनेट्स क्लस्टर के भीतर अपने आंतरिक IP पते से ही पहुँचा जा सकता है।
hello-node
कंटेनर को कुबेरनेट्स वर्चुअल नेटवर्क के
बाहर से सुलभ बनाने के लिए,पॉड को
कुबेरनेट्स सर्विस के रूप में बेनकाब करना होगा।
-
kubectl expose
कमांड का उपयोग करके पॉड को सार्वजनिक इंटरनेट पर एक्सपोज़ करें:kubectl expose deployment hello-node --type=LoadBalancer --port=8080
--type=LoadBalancer
फ्लैग इंगित करता है कि आप क्लस्टर के बाहर अपने सर्विस को प्रदर्शित करना चाहते हैं।इमेज के अंदर एप्लिकेशन कोड
registry.k8s.io/echoserver
केवल TCP पोर्ट 8080 पर सुनता है। यदि आपने किसी भिन्न पोर्ट को एक्सपोज़ करने के लिएkubectl एक्सपोज़
का उपयोग किया है, तो क्लाइंट उस अन्य पोर्ट से जुड़ नहीं सकते। -
आपके द्वारा बनाई गई सर्विस देखें:
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
कमांड से सर्विस को पहुंच योग्य बनाता है। -
इस कमांड को चलायें:
minikube service hello-node
यह कमांड एक ब्राउज़र विंडो खोलता है जो ऐप की प्रतिक्रिया दिखाती है।
ऐडऑन सक्षम करें
मिनीक्यूब टूल में बिल्ट-इन ऐडऑन (add on) का एक समूह शामिल है जिसे स्थानीय कुबेरनेट्स वातावरण में सक्षम, अक्षम और खोला जा सकता है।
-
वर्तमान में उपलब्ध ऐडऑन की सूची:
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
-
एक ऐडऑन सक्षम करें, उदाहरण के लिए,
metrics-server
:minikube addons enable metrics-server
आउटपुट कुछ इस समान होगा:
The 'metrics-server' addon is enabled
-
आपके द्वारा बनाई गई पॉड और सर्विस देखें:
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
-
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
आगे क्या है
- डेप्लॉयमेंट ऑब्जेक्ट के बारे में अधिक जाने।
- एप्लीकेशन डेप्लॉय करने के बारे में अधिक जाने।
- सर्विस ऑब्जेक्ट के बारे में अधिक जाने।