Kubernetes की बुनियाद · पाठ

स्टेटफुल ऐप्स के लिए StatefulSets

StatefulSets का उपयोग करके डेटाबेस जैसे स्टेटफुल ऐप्लिकेशन डिप्लॉय व प्रबंधित कीजिए और स्थिर नेटवर्क पहचानकर्ता व स्थायी स्टोरेज सुनिश्चित कीजिए।

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

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

स्टेटफुल एप्लिकेशन के लिए StatefulSets

स्वागत है! इस पाठ में हम StatefulSets को विस्तार से समझेंगे, जो स्टेटफुल एप्लिकेशन प्रबंधित करने के लिए बनाया गया Kubernetes ऑब्जेक्ट है।

स्टेटलेस ऐप्स के विपरीत, जिन्हें आसानी से स्केल और बदला जा सकता है, स्टेटफुल ऐप्स के प्रत्येक इंस्टेंस के लिए विशिष्ट पहचान और स्थायी स्टोरेज आवश्यक होता है। डेटाबेस, संदेश कतार या स्थानीय रूप से डेटा संग्रहित करने वाले कस्टम एप्लिकेशन इसके उदाहरण हैं।

स्टेटफुल क्यों? चुनौती

पारंपरिक Deployments स्टेटलेस एप्लिकेशन के लिए बहुत अच्छे हैं। यदि कोई पॉड बंद हो जाता है, तो उसकी जगह नया पॉड आ जाता है और अनुरोध कौन-सा पॉड पूरा कर रहा है, इससे कोई फर्क नहीं पड़ता।

लेकिन स्टेटफुल ऐप्स के लिए प्रत्येक प्रतिकृति को अक्सर स्थिर, विशिष्ट पहचान और अपना समर्पित स्टोरेज चाहिए होता है। यदि डेटाबेस का कोई पॉड पुनः आरंभ होता है, तो उसे अपने विशिष्ट डेटा वॉल्यूम से फिर जुड़ना पड़ता है।

स्थिर नेटवर्क और पॉड पहचान

StatefulSets की एक प्रमुख विशेषता प्रत्येक पॉड के लिए स्थिर, विशिष्ट नेटवर्क पहचानकर्ता उपलब्ध कराना है।

  • पॉड के नाम पूर्वानुमेय और क्रमबद्ध तरीके से रखे जाते हैं, जैसे web-0 और web-1।
  • पुनः आरंभ होने के बाद भी उनके होस्टनाम बने रहते हैं।
  • इससे अन्य सेवाएँ किसी विशिष्ट प्रतिकृति से विश्वसनीय रूप से जुड़ सकती हैं।

स्थिर और स्थायी स्टोरेज

StatefulSets यह सुनिश्चित करते हैं कि प्रत्येक पॉड को अपना स्थिर, स्थायी स्टोरेज मिले। इसे Persistent Volume Claims (PVCs) के माध्यम से संभाला जाता है।

जब StatefulSet का पॉड बनाया जाता है, तो volumeClaimTemplates परिभाषा के आधार पर PVC अपने-आप बनाया जाता है। यदि पॉड बंद होकर फिर बनाया जाता है, तो वह उसी PVC से दोबारा जुड़ता है और इस प्रकार अपना मूल डेटा प्राप्त करता है।

StatefulSet YAML की संरचना

StatefulSet की YAML परिभाषा Deployment जैसी दिखती है, लेकिन इसमें कुछ महत्वपूर्ण अतिरिक्त भाग होते हैं। इसमें शामिल हैं:

  • apiVersion, kind, metadata
  • spec.replicas, spec.selector, spec.template (Deployments की तरह)
  • spec.serviceName: हेडलेस सेवा से जोड़ता है।
  • spec.volumeClaimTemplates: प्रत्येक पॉड के लिए PVC बनाने का तरीका निर्धारित करता है।

स्थिर आईडी के लिए हेडलेस सेवा

StatefulSets को स्थिर नेटवर्क पहचान उपलब्ध कराने के लिए हेडलेस सेवा आवश्यक होती है। हेडलेस सेवा का कोई क्लस्टर IP नहीं होता। इसके बजाय, यह सीधे उन पॉड के IP पते लौटाती है जिन्हें वह चुनती है।

StatefulSet अपनी प्रत्येक पॉड के लिए DNS प्रविष्टियाँ पंजीकृत करने हेतु इस सेवा का उपयोग करता है, जैसे pod-0.my-service.my-namespace.svc.cluster.local।

apiVersion: v1
kind: Service
metadata:
  name: my-app-headless
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None # This makes it a headless service
  selector:
    app: my-app

VolumeClaimTemplates

volumeClaimTemplates अनुभाग केवल StatefulSets में पाया जाता है। यह प्रत्येक प्रतिकृति के लिए बनाए जाने वाले Persistent Volume Claims (PVCs) का टेम्पलेट है।

StatefulSet के प्रत्येक पॉड, जैसे my-app-0 और my-app-1, को इस टेम्पलेट के आधार पर अपना PVC, जैसे data-my-app-0 और data-my-app-1, मिलता है। इससे समर्पित स्टोरेज सुनिश्चित होता है।

volumeClaimTemplates:
- metadata:
    name: data # This name is used in Pod's volumeMounts
  spec:
    accessModes: [ "ReadWriteOnce" ]
    storageClassName: standard
    resources:
      requests:
        storage: 1Gi

पूर्ण StatefulSet उदाहरण

यह एक सरल Nginx StatefulSet का पूरा उदाहरण है। ध्यान दें कि serviceName हेडलेस सेवा से जुड़ा है और इसमें volumeClaimTemplates भी है।

इसे डिप्लॉय करने के लिए इसे nginx-statefulset.yaml के रूप में सहेजें और kubectl apply -f nginx-statefulset.yaml चलाएँ।

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  serviceName: "nginx-headless" # Must match headless service name
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: k8s.gcr.io/nginx-slim:0.8
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: www # Mounts the volume from the PVC
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
  - metadata:
      name: www # This name links to volumeMounts.name
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: standard
      resources:
        requests:
          storage: 1Gi
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-headless
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx

पॉड का नामकरण और क्रम

डिप्लॉयमेंट के बाद आपको web-0 और web-1 जैसे नाम वाले पॉड दिखाई देंगे। ये इंडेक्स स्थिर और विशिष्ट होते हैं।

StatefulSets स्केलिंग कार्रवाइयों के लिए सख्त क्रम लागू करते हैं। पॉड क्रम से बनाए जाते हैं (0, 1, 2...) और उल्टे क्रम में समाप्त किए जाते हैं (..., 2, 1, 0)।

कई वितरित स्टेटफुल सिस्टम में संगति बनाए रखने के लिए यह क्रमबद्ध तरीका अत्यंत महत्वपूर्ण है।

स्केलिंग और क्रमिक अपडेट

आप kubectl scale statefulset web --replicas=3 का उपयोग करके StatefulSet को Deployment की तरह ही स्केल कर सकते हैं।

क्रमिक अपडेट भी काम करते हैं, लेकिन उसी क्रम संबंधी गारंटी के साथ: पॉड एक-एक करके, उल्टे क्रमांक क्रम में अपडेट किए जाते हैं। अगला पॉड तब तक अपडेट नहीं किया जाता जब तक पिछला पॉड तैयार न हो जाए।

यह सावधानीपूर्वक समन्वय स्टेटफुल एप्लिकेशन में व्यवधान को न्यूनतम करता है।

अपनी समझ जाँचें

निम्नलिखित में से कौन-सी Kubernetes StatefulSets की प्रमुख विशेषताएँ या आवश्यकताएँ हैं?

पुनरावलोकन: StatefulSets का प्रयोग

बहुत अच्छा! इस पाठ में हमने StatefulSets को समझा, जो स्टेटफुल एप्लिकेशन प्रबंधित करने के लिए एक शक्तिशाली Kubernetes ऑब्जेक्ट है।

  • ये स्थिर नेटवर्क पहचान और क्रमबद्ध कार्रवाइयाँ उपलब्ध कराते हैं।
  • ये प्रत्येक प्रतिकृति के लिए समर्पित, स्थायी स्टोरेज हेतु volumeClaimTemplates का उपयोग करते हैं।
  • स्थिर नेटवर्क आईडी के लिए हेडलेस सेवा आवश्यक होती है।

Kubernetes पर डेटाबेस और अन्य महत्वपूर्ण स्टेटफुल कार्यभार को विश्वसनीय रूप से चलाने के लिए StatefulSets मूलभूत हैं।

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

एआई शिक्षक के साथ Kubernetes की बुनियाद सीखें — निःशुल्क

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

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

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

क्या “स्टेटफुल ऐप्स के लिए StatefulSets” पाठ निःशुल्क है?

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

“स्टेटफुल ऐप्स के लिए StatefulSets” में मैं क्या सीखूँगा?

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

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

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

“स्टेटफुल ऐप्स के लिए StatefulSets” पाठ पूरा करने में कितना समय लगता है?

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

क्या मैं इस Kubernetes की बुनियाद पाठ में कोड लिख और चला सकता हूँ?

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

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

  1. स्टेटफुल ऐप्स के लिए StatefulSets
  2. नोड-विशिष्ट कार्यों के लिए DaemonSets
  3. Kubernetes ऑपरेटर्स को समझना
  4. कस्टम रिसोर्स डेफ़िनिशन (CRDs)
← Kubernetes की बुनियाद पर वापस जाएँ