Kubernetes : बाह्य संग्रहण का उपयोग करें2023/09/04 |
Kubernetes क्लस्टर में पर्सिस्टेंट स्टोरेज कॉन्फ़िगर करें।
यह उदाहरण निम्न प्रकार से पर्यावरण पर आधारित है।
उदाहरण के लिए, Control Plane नोड पर NFS सर्वर चलाएं और कॉन्फ़िगर करें पॉड्स NFS क्षेत्र को बाहरी स्टोरेज के रूप में उपयोग कर सकते हैं।
-----------+---------------------------+--------------------------+------------ | | | eth0|10.0.0.25 eth0|10.0.0.71 eth0|10.0.0.72 +----------+-----------+ +-----------+-----------+ +-----------+-----------+ | [ ctrl.srv.world ] | | [snode01.srv.world] | | [snode02.srv.world] | | Control Plane | | Worker Node | | Worker Node | +----------------------+ +-----------------------+ +-----------------------+ |
[1] |
Control Plane नोड पर NFS सर्वर चलाएँ, यहाँ देखें।
इस उदाहरण पर, [/home/nfsshare] निर्देशिका को NFS शेयर के रूप में कॉन्फ़िगर करें। |
[2] | ControlPlane नोड पर PV (Persistent Volume) ऑब्जेक्ट और PVC (Persistent Volume Claim) ऑब्जेक्ट बनाएं। |
apiVersion: v1 kind: PersistentVolume metadata: # कोई भी PV नाम name: nfs-pv spec: capacity: # भंडारण का आकार storage: 10Gi accessModes: # एक्सेस मोड: # - ReadWriteMany (मल्टी नोड्स से RW) # - ReadWriteOnce (RW एक नोड से) # - ReadOnlyMany (मल्टी नोड्स से R) - ReadWriteMany persistentVolumeReclaimPolicy: # पॉड्स समाप्त होने पर भी बनाए रखें Retain nfs: # NFS सर्वर परिभाषा path: /home/nfsshare server: 10.0.0.25 readOnly: false kubectl create -f nfs-pv.yml persistentvolume "nfs-pv" created root@ctrl:~# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE nfs-pv 10Gi RWX Retain Available 5s
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
# कोई PVC नाम
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
kubectl create -f nfs-pvc.yml persistentvolumeclaim "nfs-pvc" created root@ctrl:~# kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE nfs-pvc Bound nfs-pv 10Gi RWX 11s |
[3] | उपरोक्त PVC के साथ पॉड्स बनाएं। |
root@ctrl:~#
vi nginx-nfs.yml apiVersion: apps/v1 kind: Deployment metadata: # कोई भी परिनियोजन नाम name: nginx-nfs labels: name: nginx-nfs spec: replicas: 3 selector: matchLabels: app: nginx-nfs template: metadata: labels: app: nginx-nfs spec: containers: - name: nginx-nfs image: nginx ports: - name: web containerPort: 80 volumeMounts: - name: nfs-share # कंटेनर में माउंट बिंदु mountPath: /usr/share/nginx/html volumes: - name: nfs-share persistentVolumeClaim: # PVC नाम जो आपने बनाया है claimName: nfs-pvc
root@ctrl:~#
root@ctrl:~# kubectl create -f nginx-nfs.yml deployment.apps/nginx-nfs created kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-nfs-7c7d5d4896-k2kn4 1/1 Running 0 93s 192.168.186.68 snode01.srv.world <none> <none> nginx-nfs-7c7d5d4896-stkkq 1/1 Running 0 93s 192.168.186.67 snode01.srv.world <none> <none> nginx-nfs-7c7d5d4896-z8898 1/1 Running 0 94s 192.168.211.130 snode02.srv.world <none> <none>root@ctrl:~# kubectl expose deployment nginx-nfs --type="NodePort" --port 80 service/nginx-nfs exposed root@ctrl:~# kubectl get service nginx-nfs NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-nfs NodePort 10.104.124.105 <none> 80:32037/TCP 5s # NFS साझा निर्देशिका के अंतर्गत एक परीक्षण फ़ाइल बनाएँ root@ctrl:~# echo 'NFS Persistent Storage Test' > /home/nfsshare/index.html
# पहुंच सत्यापित करें root@ctrl:~# curl 10.104.124.105 NFS Persistent Storage Test |
Sponsored Link |
|