Kubernetes प्रारंभिक गाइड: कंटेनराइज्ड एप्लिकेशन का कुशल प्रबंधन कैसे करें
Kubernetes प्रारंभिक गाइड: कंटेनराइज्ड एप्लिकेशन का कुशल प्रबंधन कैसे करें
Kubernetes वर्तमान में सबसे लोकप्रिय कंटेनर ऑर्केस्ट्रेशन प्लेटफॉर्म बन गया है, जो कंटेनराइज्ड एप्लिकेशन के स्वचालित तैनाती, स्केलिंग और प्रबंधन का समाधान प्रदान करता है। यह लेख शुरुआती और मध्यवर्ती डेवलपर्स के लिए एक व्यावहारिक प्रारंभिक गाइड प्रदान करेगा, जिससे आप जल्दी से Kubernetes के मुख्य सिद्धांतों और व्यावहारिक संचालन को समझ सकें।
Kubernetes क्या है?
Kubernetes (आमतौर पर K8s के रूप में संक्षिप्त) एक ओपन-सोर्स प्लेटफॉर्म है, जो कंटेनराइज्ड एप्लिकेशन की तैनाती, स्केलिंग और प्रबंधन को स्वचालित करता है। इसे Google द्वारा विकसित किया गया है और क्लाउड-नेटिव कंप्यूटिंग फाउंडेशन (CNCF) को दान किया गया है। Kubernetes का मुख्य लक्ष्य एप्लिकेशन के जीवनचक्र प्रबंधन को सरल बनाना और सिस्टम की उच्च उपलब्धता और स्वचालित प्रबंधन सुनिश्चित करना है।
Kubernetes के मुख्य घटक
1. Pod
Pod Kubernetes में सबसे छोटा तैनाती इकाई है, जिसमें एक या एक से अधिक कंटेनर हो सकते हैं। प्रत्येक Pod नेटवर्क और स्टोरेज साझा करता है, जो निकटता से जुड़े सेवाओं को चलाने के लिए उपयुक्त है।
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app-container
image: nginx
2. Deployment
Deployment Pod के जीवनचक्र का प्रबंधन करने के लिए उपयोग किया जाता है, यह सुनिश्चित करता है कि निर्दिष्ट संख्या में Pod चल रहे हैं, और संस्करण नियंत्रण और अपडेट की अनुमति देता है।
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: nginx
3. Service
Service स्थिर पहुंच बिंदु प्रदान करता है, जिससे अन्य Pod या बाहरी उपयोगकर्ता चल रहे Pod तक पहुंच सकते हैं।
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
type: LoadBalancer
selector:
app: my-app
ports:
- port: 80
targetPort: 80
Kubernetes के लाभ
- स्वचालित प्रबंधन: Kubernetes स्वचालित रूप से कंटेनर एप्लिकेशन को तैनात, स्केल और प्रबंधित कर सकता है, मैनुअल संचालन को कम करता है और त्रुटियों की संभावना को कम करता है।
- उच्च उपलब्धता: ReplicaSets के माध्यम से, Kubernetes सुनिश्चित करता है कि पर्याप्त Pod उदाहरण चल रहे हैं, यदि कोई उदाहरण विफल हो जाता है, तो सिस्टम स्वचालित रूप से उसे पुनः आरंभ या प्रतिस्थापित करेगा।
- लोड बैलेंसिंग: Kubernetes में अंतर्निहित लोड बैलेंसिंग कार्यक्षमता है, जो सेवाओं को ट्रैफ़िक आवंटित करती है, संसाधनों का कुशल उपयोग सुनिश्चित करती है।
Kubernetes पर जल्दी कैसे शुरू करें
1. वातावरण की तैयारी
पहले, आपको Kubernetes वातावरण स्थापित करना होगा। यह कई तरीकों से किया जा सकता है, जैसे कि Minikube का उपयोग करके स्थानीय परीक्षण करना, या क्लाउड सेवा प्रदाताओं (जैसे Google Kubernetes Engine, AWS EKS, Azure AKS) पर क्लस्टर स्थापित करना।
Minikube का उपयोग करके Kubernetes स्थापित करना
- Minikube और kubectl स्थापित करें
# Minikube स्थापित करें (विशिष्ट स्थापना विधि के लिए कृपया Minikube की आधिकारिक दस्तावेज़ देखें)
brew install minikube
# kubectl स्थापित करें
brew install kubectl
- Minikube प्रारंभ करें
minikube start
2. पहला एप्लिकेशन तैनात करें
Nginx का उदाहरण लेते हुए, हम Nginx को तैनात करने के लिए एक Deployment और Service को परिभाषित कर सकते हैं।
# deployment.yaml फ़ाइल बनाएँ
cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
EOF
# deployment लागू करें
kubectl apply -f deployment.yaml
# service.yaml फ़ाइल बनाएँ
cat service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
EOF
# service लागू करें
kubectl apply -f service.yaml
3. एप्लिकेशन तक पहुँचें
जब भी आप NodePort प्रकार की Service बनाते हैं, Kubernetes इसके लिए एक पोर्ट आवंटित करता है। आप निम्नलिखित कमांड का उपयोग करके पहुँच पते को प्राप्त कर सकते हैं:
minikube service nginx-service --url
ब्राउज़र में प्रिंट किए गए URL का उपयोग करके, आप Nginx का स्वागत पृष्ठ देख सकते हैं।
सामान्य त्रुटियाँ और डिबगिंग
Kubernetes का उपयोग करते समय, आप कुछ सामान्य समस्याओं का सामना कर सकते हैं, जैसे कि Pod की स्थिति CrashLoopBackOff है। यह एक त्रुटि नहीं है, बल्कि एक सुरक्षा तंत्र है, Kubernetes Pod के क्रैश होने के बाद अनंत पुनः आरंभ नहीं करेगा, बल्कि प्रत्येक पुनः आरंभ के बीच में देरी बढ़ाएगा, जिससे सिस्टम में अव्यवस्था से बचा जा सके।
आप Pod के लॉग देखने के लिए निम्नलिखित कमांड का उपयोग कर सकते हैं, जिससे डिबगिंग में मदद मिलेगी:
kubectl logs
निष्कर्ष
Kubernetes एक शक्तिशाली कंटेनर प्रबंधन उपकरण है, इसके मुख्य सिद्धांतों और सामान्य कमांड को समझकर, आप क्लाउड-नेटिव एप्लिकेशन का प्रबंधन और तैनाती अधिक कुशलता से कर सकेंगे। क्लाउड कंप्यूटिंग और कंटेनर तकनीक के प्रसार के साथ, Kubernetes सीखना आपके करियर विकास के लिए नए अवसर खोलेगा। आशा है कि यह गाइड आपके Kubernetes के अध्ययन यात्रा में मदद और संदर्भ प्रदान करेगा।





