कुबेरनेट्स - राज

राज को कुबेरनेट वस्तुओं के रूप में परिभाषित किया जा सकता है जो संवेदनशील डेटा जैसे उपयोगकर्ता नाम और पासवर्ड को एन्क्रिप्शन के साथ संग्रहीत करने के लिए उपयोग किया जाता है।

कुबेरनेट्स में रहस्य बनाने के कई तरीके हैं।

  • Txt फ़ाइलों से बनाना।
  • Yaml फ़ाइल से बनाना।

टेक्स्ट फ़ाइल से बनाना

उपयोगकर्ता नाम और पासवर्ड जैसी पाठ फ़ाइल से रहस्य बनाने के लिए, हमें पहले उन्हें एक txt फ़ाइल में संग्रहीत करना होगा और निम्नलिखित कमांड का उपयोग करना होगा।

$ kubectl create secret generic tomcat-passwd –-from-file = ./username.txt –fromfile = ./.
password.txt

यमल फ़ाइल से बनाना

apiVersion: v1
kind: Secret
metadata:
name: tomcat-pass
type: Opaque
data:
   password: <User Password>
   username: <User Name>

सीक्रेट बनाना

$ kubectl create –f Secret.yaml
secrets/tomcat-pass

राज का उपयोग करना

एक बार जब हम रहस्य बना लेते हैं, तो इसका सेवन फली या प्रतिकृति नियंत्रक में किया जा सकता है -

  • वातावरण विविधता
  • Volume

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

पर्यावरण चर के रूप में रहस्य का उपयोग करने के लिए, हम उपयोग करेंगे env फली yaml फ़ाइल के विशेष खंड के तहत।

env:
- name: SECRET_USERNAME
   valueFrom:
      secretKeyRef:
         name: mysecret
         key: tomcat-pass

वॉल्यूम के रूप में

spec:
   volumes:
      - name: "secretstest"
         secret:
            secretName: tomcat-pass
   containers:
      - image: tomcat:7.0
         name: awebserver
         volumeMounts:
            - mountPath: "/tmp/mysec"
            name: "secretstest"

पर्यावरण चर के रूप में गुप्त विन्यास

apiVersion: v1
kind: ReplicationController
metadata:
   name: appname
spec:
replicas: replica_count
template:
   metadata:
      name: appname
   spec:
      nodeSelector:
         resource-group:
      containers:
         - name: appname
            image:
            imagePullPolicy: Always
            ports:
            - containerPort: 3000
            env: -----------------------------> 1
               - name: ENV
                  valueFrom:
                     configMapKeyRef:
                        name: appname
                        key: tomcat-secrets

उपरोक्त कोड में, के तहत env परिभाषा, हम प्रतिकृति नियंत्रक में पर्यावरण चर के रूप में रहस्यों का उपयोग कर रहे हैं।

वॉल्यूम माउंट के रूप में राज

apiVersion: v1
kind: pod
metadata:
   name: appname
spec:
   metadata:
      name: appname
   spec:
   volumes:
      - name: "secretstest"
         secret:
            secretName: tomcat-pass
   containers:
      - image: tomcat: 8.0
         name: awebserver
         volumeMounts:
            - mountPath: "/tmp/mysec"
            name: "secretstest"