नोड-विशिष्ट कार्यों के लिए DaemonSets
क्लस्टर-स्तरीय संचालन के लिए अपने क्लस्टर के सभी या चुने हुए नोड्स पर पॉड की एक प्रति चलाने हेतु DaemonSets का उपयोग कीजिए।
नोड-विशिष्ट कार्यों के लिए DaemonSets, CoddyKit पर Kubernetes की बुनियाद का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Kubernetes की बुनियाद सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Kubernetes की बुनियाद पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
DaemonSets क्या हैं?
कल्पना कीजिए कि आपको अपने क्लस्टर के हर सर्वर पर कोई विशेष टूल या सेवा चलानी है। उदाहरण के लिए, ऐसा लॉगिंग एजेंट जो प्रत्येक मशीन से लॉग एकत्र करे।
यहीं DaemonSets उपयोगी होते हैं! Deployments के विपरीत, जो क्लस्टर में कहीं निश्चित संख्या में पॉड चलाए रखने का लक्ष्य रखते हैं, DaemonSet यह सुनिश्चित करता है कि प्रत्येक (या चुने गए) नोड पर पॉड की एक प्रति चले।
DaemonSet के सामान्य उपयोग
DaemonSets उन कार्यों के लिए उपयुक्त हैं जिन्हें नोड स्तर पर चलाना आवश्यक होता है। कुछ सामान्य उदाहरण हैं:
- लॉगिंग एजेंट: प्रत्येक नोड से लॉग एकत्र करने के लिए Fluentd या Logstash जैसे टूल।
- निगरानी एजेंट: प्रत्येक सर्वर से मेट्रिक्स एकत्र करने के लिए Prometheus Node Exporter।
- स्टोरेज डेमन: प्रत्येक नोड पर वितरित स्टोरेज उपलब्ध कराने वाली GlusterFS या Ceph जैसी सेवाएँ।
- नेटवर्क प्रॉक्सी: नेटवर्क नियमों को प्रबंधित करने के लिए Kubernetes का अपना Kube-proxy DaemonSet के रूप में चलता है।
बुनियादी DaemonSet मैनिफेस्ट
DaemonSet की परिभाषा Deployment जैसी ही दिखती है। मुख्य अंतर kind: DaemonSet है। आइए इसकी एक बुनियादी संरचना देखें:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: my-daemonset
spec:
selector:
matchLabels:
app: my-daemonset-app
template:
metadata:
labels:
app: my-daemonset-app
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "echo 'Hello from DaemonSet on node $(NODE_NAME)'; sleep 3600"]
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeNameYAML के प्रमुख भाग
आइए अपने DaemonSet मैनिफेस्ट के महत्वपूर्ण अनुभागों को समझें:
kind: DaemonSet: यह Kubernetes को बताता है कि हमें नोड-विशिष्ट पॉड प्रबंधित करने हैं।spec.selector: अत्यंत आवश्यक! यह लेबल का उपयोग करके DaemonSet द्वारा अपने पॉड खोजने और प्रबंधित करने का तरीका निर्धारित करता है।spec.template: यह स्वयं पॉड की परिभाषा है। यह Deployment में मिलने वाले पॉड टेम्पलेट के लगभग समान होती है। इसमें प्रत्येक नोड पर चलने वाले पॉड के कंटेनर, वॉल्यूम और अन्य सेटिंग्स का वर्णन होता है।
सभी नोड पर डिप्लॉय करना
यह एक सरल DaemonSet है जो प्रत्येक योग्य नोड पर busybox कंटेनर चलाता है। यह बताने वाला संदेश प्रिंट करेगा कि वह किस नोड पर चल रहा है।
क्लस्टर-व्यापी एजेंट के लिए यह एक सामान्य तरीका है।
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-hello-daemon
spec:
selector:
matchLabels:
app: node-hello
template:
metadata:
labels:
app: node-hello
spec:
containers:
- name: hello-container
image: busybox
command: ["sh", "-c", "while true; do echo 'Hello from node: $(NODE_NAME)'; sleep 5; done"]
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeNameअपना DaemonSet शुरू करना
अपने Kubernetes क्लस्टर में DaemonSet बनाने के लिए, अभी देखी गई YAML फ़ाइल के साथ परिचित kubectl apply कमांड का उपयोग करें:
kubectl apply -f node-hello-daemonset.yaml
इसके बाद Kubernetes यह सुनिश्चित करेगा कि DaemonSet के मानदंडों से मेल खाने वाले प्रत्येक नोड पर एक पॉड शेड्यूल हो।
DaemonSet की स्थिति जाँचना
लागू करने के बाद आप अपने DaemonSet और उसके द्वारा बनाए गए पॉड की स्थिति जाँच सकते हैं:
- DaemonSet देखने के लिए:
kubectl get ds - प्रत्येक नोड पर चल रहे अलग-अलग पॉड देखने के लिए:
kubectl get pods -l app=node-hello -o wide
-o wide विकल्प यह देखने में सहायता करता है कि प्रत्येक पॉड किस नोड पर शेड्यूल किया गया है।
चयनित नोड पर DaemonSets
यदि आप अपने DaemonSet को केवल कुछ चुने हुए नोड पर चलाना चाहते हों तो क्या होगा? उदाहरण के लिए, केवल GPU वाले नोड या स्टोरेज के लिए समर्पित नोड।
आप यह nodeSelector का उपयोग करके कर सकते हैं। पॉड के spec में (DaemonSet के टेम्पलेट के भीतर) मौजूद यह फ़ील्ड आपको वे नोड लेबल निर्दिष्ट करने देती है जो पॉड को वहाँ शेड्यूल किए जाने के लिए नोड में होने चाहिए।
YAML में नोड चयनकर्ताओं का उपयोग
आइए अपने पिछले DaemonSet में बदलाव करके इसे केवल disktype: ssd लेबल वाले नोड पर चलाएँ। पहले आपको अपने नोड पर लेबल लगाना होगा, जैसे kubectl label node <node-name> disktype=ssd।
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: ssd-monitor-daemon
spec:
selector:
matchLabels:
app: ssd-monitor
template:
metadata:
labels:
app: ssd-monitor
spec:
nodeSelector:
disktype: ssd # Only runs on nodes with this label
containers:
- name: monitor-container
image: busybox
command: ["sh", "-c", "while true; do echo 'Monitoring SSD on node: $(NODE_NAME)'; sleep 10; done"]
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeNameDaemonSet की क्षमताएँ
आपने सीख लिया है कि DaemonSets कैसे काम करते हैं। अब अपनी समझ जाँचें!
DaemonSets: मुख्य बातें
बहुत अच्छा! आपने Kubernetes DaemonSets के बारे में सफलतापूर्वक सीख लिया है।
- DaemonSets यह सुनिश्चित करते हैं कि प्रत्येक योग्य नोड पर एक पॉड चले।
- ये लॉगिंग, निगरानी और स्टोरेज एजेंट जैसे नोड-स्तरीय संचालन के लिए अत्यंत महत्वपूर्ण हैं।
- विशिष्ट नोड को लक्षित करने के लिए आप
nodeSelectorका उपयोग कर सकते हैं। - DaemonSets को
kind: DaemonSetसे परिभाषित किया जाता है और Deployments की तरह पॉड टेम्पलेट का उपयोग किया जाता है।
इसके बाद आप स्टेटफुल एप्लिकेशन प्रबंधित करने के लिए StatefulSets का अध्ययन करेंगे!
एआई शिक्षक के साथ Kubernetes की बुनियाद सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “नोड-विशिष्ट कार्यों के लिए DaemonSets” पाठ निःशुल्क है?
हाँ — Kubernetes की बुनियाद अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “नोड-विशिष्ट कार्यों के लिए DaemonSets” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Kubernetes की बुनियाद पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“नोड-विशिष्ट कार्यों के लिए DaemonSets” में मैं क्या सीखूँगा?
क्लस्टर-स्तरीय संचालन के लिए अपने क्लस्टर के सभी या चुने हुए नोड्स पर पॉड की एक प्रति चलाने हेतु DaemonSets का उपयोग कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Kubernetes की बुनियाद का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Kubernetes की बुनियाद शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Kubernetes की बुनियाद शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“नोड-विशिष्ट कार्यों के लिए DaemonSets” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Kubernetes की बुनियाद पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Kubernetes की बुनियाद पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- स्टेटफुल ऐप्स के लिए StatefulSets
- नोड-विशिष्ट कार्यों के लिए DaemonSets
- Kubernetes ऑपरेटर्स को समझना
- कस्टम रिसोर्स डेफ़िनिशन (CRDs)