डेवलपरों के लिए Docker और Kubernetes · पाठ

Kubernetes Ingress और रूटिंग

सेवाओं को बाहरी पहुँच देने के लिए Ingress संसाधनों को कॉन्फ़िगर करें, जिससे उन्नत रूटिंग और TLS टर्मिनेशन संभव हो।

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

Kubernetes Ingress और रूटिंग, CoddyKit पर डेवलपरों के लिए Docker और Kubernetes का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह डेवलपरों के लिए Docker और Kubernetes सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। डेवलपरों के लिए Docker और Kubernetes पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Ingress के साथ बाहरी पहुँच प्राप्त करें

अब तक हमने अपने एप्लिकेशन को Kubernetes क्लस्टर के बाहर उपलब्ध कराने के लिए NodePort या LoadBalancer जैसी Services का उपयोग किया है।

हालाँकि ये प्रभावी हैं, लेकिन जटिल रूटिंग, होस्ट-आधारित नियमों या कई एप्लिकेशन के लिए TLS प्रमाणपत्रों के प्रबंधन में इनकी कुछ सीमाएँ हैं।

यहीं Ingress उपयोगी होता है! यह बाहरी ट्रैफ़िक के प्रवेश-बिंदु के रूप में काम करता है और अधिक उन्नत रूटिंग क्षमताएँ प्रदान करता है।

Ingress बनाम Services: मुख्य अंतर

आइए भूमिकाओं को स्पष्ट करें:

  • सेवा: क्लस्टर के भीतर Pods के लिए स्थिर नेटवर्किंग उपलब्ध कराती है और किसी एक एप्लिकेशन को बाहरी रूप से उजागर कर सकती है (जैसे, NodePort, LoadBalancer)।
  • इनग्रेसेस: कई सेवाओं तक बाहरी पहुँच का प्रबंधन करता है और URL रूटिंग, होस्ट-आधारित रूटिंग तथा SSL/TLS समापन जैसी सुविधाएँ प्रदान करता है।

इनग्रेसेस को अपने बाहरी अनुरोधों के लिए एक स्मार्ट ट्रैफ़िक नियंत्रक समझिए।

मस्तिष्क: इनग्रेसेस नियंत्रक

इनग्रेसेस संसाधन स्वयं अपने-आप कुछ नहीं करता। यह केवल आपके द्वारा परिभाषित नियमों का एक समूह है।

आपके क्लस्टर में एक इनग्रेसेस नियंत्रक चलना आवश्यक है। यह नियंत्रक इनग्रेसेस संसाधनों पर नज़र रखता है और उन नियमों को लागू करने के लिए एक प्रॉक्सी (जैसे Nginx, HAProxy या Traefik) को कॉन्फ़िगर करता है।

इनग्रेसेस नियंत्रक के बिना, आपके इनग्रेसेस नियमों को अनदेखा कर दिया जाता है!

इनग्रेसेस नियम की संरचना

इनग्रेसेस संसाधन ट्रैफ़िक को रूट करने का तरीका YAML में परिभाषित करता है। इसकी मूल संरचना इस प्रकार है:

यह होस्टनाम और पथ के आधार पर नियम निर्दिष्ट करता है और ट्रैफ़िक को किसी विशिष्ट Kubernetes सेवा तक भेजता है।

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-app-ingress
spec:
  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-app-service
            port:
              number: 80

होस्टनाम के आधार पर रूटिंग

एक शक्तिशाली सुविधा होस्ट-आधारित रूटिंग है। आप अलग-अलग होस्टनामों के ट्रैफ़िक को अलग-अलग बैकएंड सेवाओं तक भेज सकते हैं।

उदाहरण के लिए, blog.example.com आपकी ब्लॉग सेवा तक जाता है और api.example.com आपकी API सेवा तक जाता है।

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: multi-host-ingress
spec:
  rules:
  - host: blog.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: blog-service
            port:
              number: 80
  - host: api.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              number: 80

URL पथ के आधार पर रूटिंग

आप URL पथ के आधार पर भी ट्रैफ़िक रूट कर सकते हैं। यह एक ही डोमेन के अंतर्गत किसी एक एप्लिकेशन या माइक्रोसर्विस के अलग-अलग हिस्सों को उजागर करने में उपयोगी है।

उदाहरण के लिए, myapp.com/users उपयोगकर्ता सेवा तक जा सकता है, जबकि myapp.com/products उत्पाद सेवा तक जाता है।

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: path-ingress
spec:
  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /users
        pathType: Prefix
        backend:
          service:
            name: user-service
            port:
              number: 80
      - path: /products
        pathType: Prefix
        backend:
          service:
            name: product-service
            port:
              number: 80

बिना मेल वाले अनुरोधों को संभालना

यदि आने वाले अनुरोध से कोई होस्ट या पथ नियम मेल न खाए, तो क्या होगा?

आप अपने इनग्रेसेस में एक डिफ़ॉल्ट बैकएंड परिभाषित कर सकते हैं। यह बिना मेल वाले सभी ट्रैफ़िक को किसी विशिष्ट सेवा तक भेजता है, जो अक्सर एक साधारण "404 Not Found" पृष्ठ या डिफ़ॉल्ट लैंडिंग पृष्ठ होता है।

मज़बूती के लिए डिफ़ॉल्ट बैकएंड को हमेशा शामिल करना अच्छा अभ्यास है।

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: default-backend-ingress
spec:
  defaultBackend:
    service:
      name: default-404-service
      port:
        number: 80
  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              number: 80

TLS से ट्रैफ़िक सुरक्षित करना

सुरक्षा अत्यंत महत्वपूर्ण है! इनग्रेसेस TLS समापन भी संभाल सकता है। इसका अर्थ है कि इनग्रेसेस नियंत्रक आने वाले HTTPS ट्रैफ़िक को आपके बैकएंड सेवाओं तक भेजने से पहले डिक्रिप्ट करता है (इसके बाद वे साधारण HTTP पर चल सकती हैं)।

इससे SSL/TLS प्रमाणपत्रों के प्रबंधन का भार आपके एप्लिकेशन Pods से हटकर इनग्रेसेस नियंत्रक पर आ जाता है।

आपको अपने TLS प्रमाणपत्र और कुंजी वाली एक Kubernetes Secret की आवश्यकता होगी।

TLS के साथ इनग्रेसेस का उदाहरण

TLS सक्षम करने के लिए, आप अपनी इनग्रेसेस परिभाषा में किसी Kubernetes Secret का संदर्भ देते हैं। इस Secret में TLS प्रमाणपत्र और निजी कुंजी होनी चाहिए।

इसके बाद इनग्रेसेस नियंत्रक आपके डोमेन से होने वाले HTTPS कनेक्शनों के लिए इस प्रमाणपत्र का उपयोग करेगा।

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: secure-app-ingress
spec:
  tls:
  - hosts:
    - secureapp.example.com
    secretName: secureapp-tls-secret # Refers to a Kubernetes Secret
  rules:
  - host: secureapp.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: secure-app-service
            port:
              number: 443 # Or 80, if backend is HTTP

इनग्रेसेस रूटिंग की जाँच

निम्नलिखित नियम वाले इनग्रेसेस संसाधन पर विचार कीजिए:

  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              number: 80
      - path: /
        pathType: Prefix
        backend:
          service:
            name: frontend-service
            port:
              number: 80

http://myapp.example.com/api/v1/users के लिए किया गया अनुरोध किस सेवा तक रूट किया जाएगा?

इनग्रेसेस: आपका स्मार्ट ट्रैफ़िक प्रहरी

इस पाठ में आपने Kubernetes इनग्रेसेस के बारे में सीखा, जो आपके क्लस्टर तक बाहरी पहुँच प्रबंधित करने का एक शक्तिशाली साधन है।

  • इनग्रेसेस होस्ट और पथ-आधारित नियमों जैसी उन्नत रूटिंग सुविधाएँ प्रदान करता है।
  • इनग्रेसेस नियमों को काम कराने के लिए इनग्रेसेस नियंत्रक आवश्यक है।
  • इनग्रेसेस और Kubernetes Secrets का उपयोग करके TLS समापन से आप अपने एप्लिकेशन आसानी से सुरक्षित कर सकते हैं।

इनग्रेसेस जटिल एप्लिकेशन और माइक्रोसर्विस को बाहरी दुनिया के सामने उजागर करना आसान बनाता है!

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

एआई शिक्षक के साथ डेवलपरों के लिए Docker और Kubernetes सीखें — निःशुल्क

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

पाठ्यक्रम
12
पाठ
48

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

क्या “Kubernetes Ingress और रूटिंग” पाठ निःशुल्क है?

हाँ—“Kubernetes Ingress और रूटिंग” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और डेवलपरों के लिए Docker और Kubernetes पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। डेवलपरों के लिए Docker और Kubernetes पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Kubernetes Ingress और रूटिंग” में मैं क्या सीखूँगा?

सेवाओं को बाहरी पहुँच देने के लिए Ingress संसाधनों को कॉन्फ़िगर करें, जिससे उन्नत रूटिंग और TLS टर्मिनेशन संभव हो। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ डेवलपरों के लिए Docker और Kubernetes का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या डेवलपरों के लिए Docker और Kubernetes शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

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

“Kubernetes Ingress और रूटिंग” पाठ पूरा करने में कितना समय लगता है?

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

क्या मैं इस डेवलपरों के लिए Docker और Kubernetes पाठ में कोड लिख और चला सकता हूँ?

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

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

  1. Kubernetes Ingress और रूटिंग
  2. नेटवर्क नीतियाँ लागू करना
  3. K8s में सर्विस डिस्कवरी और DNS
  4. TLS termination और HTTPS से Ingress सुरक्षित करना
← डेवलपरों के लिए Docker और Kubernetes पर वापस जाएँ