Docker और DevOps की बुनियाद · पाठ

ConfigMaps और सीक्रेट्स

ConfigMaps और सीक्रेट्स का उपयोग करके अपने Kubernetes डिप्लॉयमेंट्स में कॉन्फ़िगरेशन डेटा और संवेदनशील जानकारी को सुरक्षित रूप से प्रबंधित कीजिए।

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

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

ConfigMaps और Secrets का परिचय

स्वागत है! इस पाठ में हम Kubernetes में कॉन्फ़िगरेशन डेटा और संवेदनशील जानकारी प्रबंधित करना सीखेंगे। हम ConfigMaps और Secrets का अध्ययन करेंगे, जो लचीले और सुरक्षित एप्लिकेशन डिप्लॉयमेंट के लिए दो आवश्यक उपकरण हैं।

ConfigMaps और सीक्रेट्स — चित्र 1

कॉन्फ़िगरेशन को बाहरी क्यों करें?

कल्पना कीजिए कि डेटाबेस क्रेडेंशियल या API कुंजी को सीधे अपने एप्लिकेशन की Docker इमेज में लिख दिया जाए। इससे अपडेट करना कठिन हो जाता है और संवेदनशील डेटा उजागर हो जाता है।

  • अनम्यता: बदलावों के लिए इमेज को फिर से बनाना पड़ता है।
  • सुरक्षा जोखिम: संवेदनशील डेटा इमेज में स्थायी रूप से शामिल हो जाता है।
  • परिवेश-विशिष्टता: अलग-अलग परिवेशों (विकास, उत्पादन) के लिए अलग-अलग सेटिंग की आवश्यकता होती है।

ConfigMaps: गैर-संवेदनशील डेटा

ConfigMap एक Kubernetes ऑब्जेक्ट है, जिसका उपयोग गैर-संवेदनशील कॉन्फ़िगरेशन डेटा को कुंजी-मान युग्मों के रूप में संग्रहीत करने के लिए किया जाता है। इसे आपके ऐप की सेटिंग के केंद्रीय स्थान की तरह समझिए, जैसे लॉग स्तर या API एंडपॉइंट।

यह कॉन्फ़िगरेशन को आपके एप्लिकेशन कोड से अलग रखता है, जिससे आपके डिप्लॉयमेंट अधिक पोर्टेबल और प्रबंधित करने में आसान हो जाते हैं।

ConfigMap निर्धारित करना

आप शाब्दिक मानों, फ़ाइलों या डायरेक्टरी से ConfigMap बना सकते हैं। YAML फ़ाइल में निर्धारित एक सरल उदाहरण यहाँ दिया गया है:

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-app-config
data:
  log_level: "INFO"
  api_endpoint: "http://myapi.example.com"

पर्यावरण चर के रूप में ConfigMap

बनाए जाने के बाद, कोई पॉड ConfigMap डेटा का उपयोग पर्यावरण चर के रूप में कर सकता है। आपके एप्लिकेशन तक सेटिंग पहुँचाने का यह एक सामान्य तरीका है।

कोई पॉड हमारे my-app-config का उपयोग इस तरह करता है:

apiVersion: v1
kind: Pod
metadata:
  name: configmap-env-pod
spec:
  containers:
  - name: my-container
    image: busybox
    command: ["sh", "-c", "echo Log Level: $LOG_LEVEL; echo API: $API_ENDPOINT"]
    env:
    - name: LOG_LEVEL
      valueFrom:
        configMapKeyRef:
          name: my-app-config
          key: log_level
    - name: API_ENDPOINT
      valueFrom:
        configMapKeyRef:
          name: my-app-config
          key: api_endpoint
  restartPolicy: Never

माउंट की गई फ़ाइलों के रूप में ConfigMap

वैकल्पिक रूप से, ConfigMap डेटा को आपके कंटेनर के अंदर फ़ाइलों के रूप में माउंट किया जा सकता है। हर कुंजी-मान युग्म एक फ़ाइल बन जाता है, जिसमें कुंजी फ़ाइल नाम और मान उसकी सामग्री होता है।

यह उन कॉन्फ़िगरेशन फ़ाइलों के लिए उपयोगी है जिन्हें आपका एप्लिकेशन किसी खास पथ से पढ़ने की अपेक्षा करता है।

apiVersion: v1
kind: Pod
metadata:
  name: configmap-file-pod
spec:
  containers:
  - name: my-container
    image: busybox
    command: ["sh", "-c", "cat /etc/config/log_level; cat /etc/config/api_endpoint"]
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
  volumes:
  - name: config-volume
    configMap:
      name: my-app-config
  restartPolicy: Never

Secrets: संवेदनशील डेटा

Secrets ConfigMaps के समान होते हैं, लेकिन इन्हें पासवर्ड, API कुंजी या TLS प्रमाणपत्र जैसे संवेदनशील डेटा के लिए बनाया गया है। Kubernetes आपको इन्हें सुरक्षित रूप से प्रबंधित और वितरित करने में सहायता करता है।

ConfigMaps डेटा को साधारण टेक्स्ट में संग्रहीत करते हैं, जबकि Secrets base64-एन्कोडेड होते हैं। यह एन्क्रिप्शन नहीं है, लेकिन आकस्मिक रूप से डेटा उजागर होने से बचाता है।

Secret निर्धारित करना

Secret बनाते समय मानों को base64 में एन्कोड किया जाना चाहिए। उन्हें एन्कोड करने के लिए आप echo -n 'my-password' | base64 का उपयोग कर सकते हैं।

डेटाबेस पासवर्ड का एक उदाहरण यहाँ दिया गया है:

apiVersion: v1
kind: Secret
metadata:
  name: db-credentials
type: Opaque
data:
  username: YWRtaW4= # base64 of 'admin'
  password: c3VwZXJzZWNyZXRwYXNz # base64 of 'supersecretpass'

पॉड में Secrets का उपयोग करना

पॉड Secrets का उपयोग लगभग उसी तरह करते हैं जैसे ConfigMaps का: पर्यावरण चर या माउंट की गई फ़ाइलों के रूप में। Kubernetes कंटेनर को उपलब्ध कराने से पहले उन्हें अपने-आप डिकोड कर देता है।

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

apiVersion: v1
kind: Pod
metadata:
  name: secret-env-pod
spec:
  containers:
  - name: my-app-container
    image: busybox
    command: ["sh", "-c", "echo DB User: $DB_USERNAME; echo DB Pass: $DB_PASSWORD"]
    env:
    - name: DB_USERNAME
      valueFrom:
        secretKeyRef:
          name: db-credentials
          key: username
    - name: DB_PASSWORD
      valueFrom:
        secretKeyRef:
          name: db-credentials
          key: password
  restartPolicy: Never

सुरक्षा की सर्वोत्तम प्रक्रियाएँ

याद रखें, base64 एन्कोडिंग एन्क्रिप्शन नहीं है। डेटा को संग्रहीत अवस्था में वास्तविक रूप से एन्क्रिप्ट करने के लिए आपको Kubernetes Secrets बैकएंड (जैसे Vault) की आवश्यकता हो सकती है या क्लाउड प्रदाता की KMS सेवाओं का उपयोग करना पड़ सकता है।

  • RBAC: नियंत्रित करें कि कौन Secrets तक पहुँच सकता है।
  • न्यूनतम विशेषाधिकार: पॉड को केवल उन्हीं Secrets तक पहुँच दें जिनकी उन्हें आवश्यकता है।
  • माउंट की गई फ़ाइलें: Secrets को पर्यावरण चर के बजाय फ़ाइलों के रूप में माउंट करना पसंद करें।

कॉन्फ़िगरेशन की त्वरित जाँच

आपको Kubernetes में अपने एप्लिकेशन के लिए एक API कुंजी (संवेदनशील) और एक लॉग स्तर सेटिंग (गैर-संवेदनशील) संग्रहीत करनी है।

क्रमशः प्रत्येक के लिए आपको किन Kubernetes ऑब्जेक्ट का उपयोग करना चाहिए?

पुनरावलोकन: ConfigMaps और Secrets

बहुत बढ़िया! आपने Kubernetes में एप्लिकेशन कॉन्फ़िगरेशन और संवेदनशील डेटा प्रबंधित करना सीख लिया है।

  • ConfigMaps: गैर-संवेदनशील कुंजी-मान युग्म संग्रहीत करते हैं।
  • Secrets: संवेदनशील डेटा संग्रहीत करते हैं (base64 में एन्कोडेड)।
  • पॉड दोनों का उपयोग पर्यावरण चर या माउंट की गई फ़ाइलों के रूप में कर सकते हैं।
  • संवेदनशील जानकारी संभालते समय हमेशा सुरक्षा की सर्वोत्तम प्रक्रियाओं का पालन करें।

अब RBAC और बाहरी Secret प्रबंधन समाधानों जैसे उन्नत सुरक्षा विषयों का अध्ययन करें।

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

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

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

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

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

क्या “ConfigMaps और सीक्रेट्स” पाठ निःशुल्क है?

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

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

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

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

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

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

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

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

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

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

  1. स्टेटलेस ऐप्स के लिए डिप्लॉयमेंट्स
  2. नेटवर्क पहुँच के लिए सर्विसेज़
  3. ConfigMaps और सीक्रेट्स
  4. Ingress और बाहरी रूटिंग
← Docker और DevOps की बुनियाद पर वापस जाएँ