DevOps बूटकैंप · पाठ

DNS और सेवा खोज

समझें कि Kubernetes के अंतर्निर्मित DNS से Pod एक-दूसरे को कैसे खोजते हैं और Service discovery पर्दे के पीछे कैसे काम करती है

पाठ 4, कुल 4 में से13 चरण

DNS और सेवा खोज, CoddyKit पर DevOps बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह DevOps बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

सर्विस खोज की समस्या

पॉड आते-जाते रहते हैं और उनके IP लगातार बदलते रहते हैं। IP को स्थायी रूप से लिख देने से सब कुछ तुरंत टूट जाएगा। कुबेरनेटिस इस समस्या को DNS-आधारित सर्विस खोज से हल करता है।

IP के बजाय आप एक स्थिर नाम से संपर्क करते हैं।

क्लस्टर DNS

हर क्लस्टर में एक DNS सर्विस चलती है (आमतौर पर CoreDNS)। यह सर्विस और पॉड के लिए DNS रिकॉर्ड अपने-आप बनाती है, ताकि नाम सही ClusterIP में बदल सकें।

सर्विस के DNS नाम

सर्विस का DNS नाम एक अनुमानित पैटर्न का अनुसरण करता है:

service-name.namespace.svc.cluster.local

उसी नेमस्पेस के भीतर आप केवल छोटे service-name का उपयोग कर सकते हैं।

# from a Pod in the same namespace
curl http://payment-service:8080

# fully qualified, from any namespace
curl http://payment-service.shop.svc.cluster.local:8080

नेमस्पेस और नामकरण

नेमस्पेस नाम का हिस्सा होता है। किसी दूसरे नेमस्पेस की सर्विस तक पहुँचने के लिए उसे शामिल करें: service.namespace।

# Pod in 'frontend' namespace calling 'backend' namespace
curl http://api.backend.svc.cluster.local

पॉड से DNS की जाँच

नाम का समाधान जाँचने के लिए आप थोड़े समय के उपयोग वाला पॉड शुरू कर सकते हैं।

kubectl run dnstest --image=busybox:1.36 --rm -it --restart=Never -- nslookup payment-service

CoreDNS नामों का समाधान कैसे करता है

जब कोई पॉड किसी नाम के बारे में पूछता है, तो अनुरोध CoreDNS को भेजा जाता है। CoreDNS मिलती-जुलती सर्विस खोजकर उसका ClusterIP लौटाता है। हेडलेस सर्विस के लिए यह सीधे पॉड के IP लौटाता है।

हेडलेस सर्विस

हेडलेस सर्विस (clusterIP: None) एकल वर्चुअल IP को छोड़ देती है। इसके बजाय DNS अलग-अलग पॉड के IP लौटाता है, जो उन स्टेटफुल ऐप्लिकेशन के लिए आवश्यक है जो पॉड से सीधे संपर्क करते हैं।

apiVersion: v1
kind: Service
metadata:
  name: db
spec:
  clusterIP: None
  selector:
    app: db
  ports:
  - port: 5432

पॉड के DNS रिकॉर्ड

हेडलेस सर्विस के साथ, प्रत्येक समर्थित पॉड को अपना DNS रिकॉर्ड भी मिल सकता है। यह StatefulSets के लिए उपयोगी है, जहाँ पॉड की स्थिर पहचान db-0, db-1 जैसी होती है।

# stable per-Pod name in a StatefulSet
curl http://db-0.db.default.svc.cluster.local:5432

पॉड के resolv.conf की जाँच

कुबेरनेटिस हर पॉड में DNS कॉन्फ़िगरेशन डालता है। खोज डोमेन छोटे नामों को सही ढंग से हल करने में सहायता करते हैं।

kubectl exec -it mypod -- cat /etc/resolv.conf
# nameserver 10.96.0.10
# search default.svc.cluster.local svc.cluster.local cluster.local

पर्यावरण चर और DNS की तुलना

कुबेरनेटिस सर्विस की कनेक्शन जानकारी को पर्यावरण चरों के रूप में भी डालता है, लेकिन केवल उन सर्विसों के लिए जो पॉड शुरू होने के समय मौजूद थीं। DNS को प्राथमिकता दी जाती है, क्योंकि वह हमेशा वर्तमान स्थिति दर्शाता है।

DNS की सामान्य समस्याएँ

  • अलग-अलग नेमस्पेस में संपर्क करते समय नेमस्पेस बताना भूल जाना
  • ऐसी सर्विस के लिए DNS मिलने की अपेक्षा करना जिसके साथ कोई पॉड मेल नहीं खाता (कोई एंडपॉइंट नहीं)
  • नाम का दोबारा समाधान करने के बजाय ऐप में पुराने IP संचित कर लेना

त्वरित जाँच

DNS नाम का सही प्रारूप चुनें।

पुनरावलोकन

आपने सीखा कि कुबेरनेटिस सर्विस को service.namespace.svc.cluster.local के अनुसार स्थिर DNS नाम देने के लिए CoreDNS का उपयोग करता है। नेमस्पेस के भीतर छोटे नाम काम करते हैं, हेडलेस सर्विस अलग-अलग पॉड के IP उपलब्ध कराती हैं और DNS हमेशा क्लस्टर की वर्तमान स्थिति दर्शाता है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ DevOps बूटकैंप सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
142
पाठ
568

अक्सर पूछे जाने वाले प्रश्न

क्या “DNS और सेवा खोज” पाठ निःशुल्क है?

हाँ — DevOps बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “DNS और सेवा खोज” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“DNS और सेवा खोज” में मैं क्या सीखूँगा?

समझें कि Kubernetes के अंतर्निर्मित DNS से Pod एक-दूसरे को कैसे खोजते हैं और Service discovery पर्दे के पीछे कैसे काम करती है आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ DevOps बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या DevOps बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर DevOps बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“DNS और सेवा खोज” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस DevOps बूटकैंप पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर DevOps बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. सर्विसेज़ से ऐप्स को उपलब्ध कराना
  2. सर्विस प्रकार: ClusterIP, NodePort, LoadBalancer
  3. बाहरी पहुँच के लिए Ingress
  4. DNS और सेवा खोज
← DevOps बूटकैंप पर वापस जाएँ