कुबेरनेट्स - राज
राज को कुबेरनेट वस्तुओं के रूप में परिभाषित किया जा सकता है जो संवेदनशील डेटा जैसे उपयोगकर्ता नाम और पासवर्ड को एन्क्रिप्शन के साथ संग्रहीत करने के लिए उपयोग किया जाता है।
कुबेरनेट्स में रहस्य बनाने के कई तरीके हैं।
- 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"