MicroK8s : डायनेमिक वॉल्यूम प्रोविजनिंग (NFS)2024/06/14 |
पर्सिस्टेंट स्टोरेज का उपयोग करते समय डायनेमिक वॉल्यूम प्रोविजनिंग सुविधा का उपयोग करने के लिए, क्लस्टर एडमिनिस्ट्रेटर द्वारा मैन्युअल रूप से पीवी बनाए बिना गतिशील रूप से पीवी (पर्सिस्टेंट वॉल्यूम) बनाना संभव है, जब उपयोगकर्ता द्वारा पीवीसी (पर्सिस्टेंट वॉल्यूम क्लेम) बनाया जाता है। |
|
[1] |
किसी भी नोड पर NFS सर्वर कॉन्फ़िगर करने के लिए यहां देखें।
इस उदाहरण में, यह NFS सर्वर पर [/home/nfsshare] निर्देशिका का उपयोग करता है जो [nfs.srv.world (10.0.0.35)] पर चल रहा है। |
[2] | NFS क्लाइंट प्रोविजनर स्थापित करें. |
root@dlp:~#
microk8s helm3 repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
# nfs.server = (NFS सर्वर का होस्टनाम या IP पता) # nfs.path = (NFS शेयर पथ) root@dlp:~# microk8s helm3 install nfs-client -n kube-system --set nfs.server=10.0.0.35 --set nfs.path=/home/nfsshare nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
NAME: nfs-client LAST DEPLOYED: Fri Jun 14 03:48:46 2024 NAMESPACE: kube-system STATUS: deployed REVISION: 1 TEST SUITE: Noneroot@dlp:~# microk8s kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE ..... ..... nfs-client-nfs-subdir-external-provisioner-864f5ff99b-rfqkz 1/1 Running 0 8m52s |
[3] | यह पॉड द्वारा डायनेमिक वॉल्यूम प्रोविजनिंग का उपयोग करने का एक उदाहरण है। |
root@dlp:~# microk8s kubectl get storageclass NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE microk8s-hostpath (default) microk8s.io/hostpath Delete WaitForFirstConsumer false 107m nfs-client cluster.local/nfs-client-nfs-subdir-external-provisioner Delete Immediate true 9m29s apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-provisioner spec: accessModes: - ReadWriteOnce # StorageClass नाम निर्दिष्ट करें storageClassName: nfs-client resources: requests: # वॉल्यूम आकार storage: 5Gi
root@dlp:~#
root@dlp:~# microk8s kubectl apply -f my-pvc.yml persistentvolumeclaim/my-provisioner configured microk8s kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE my-provisioner Bound pvc-74a17dbd-6743-4472-9519-4f0b765fa2b4 5Gi RWO nfs-client <unset> 3m32s # PV गतिशील रूप से उत्पन्न होता है root@dlp:~# microk8s kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE pvc-74a17dbd-6743-4472-9519-4f0b765fa2b4 5Gi RWO Delete Bound default/my-provisioner nfs-client <unset> 4m9s pvc-fbf13c3e-0c3d-4ab0-bd26-0f139fdf1643 30Gi RWX Delete Bound container-registry/registry-claim microk8s-hostpath <unset> 112m
root@dlp:~#
vi my-pod.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
spec:
selector:
matchLabels:
run: my-nginx
replicas: 1
template:
metadata:
labels:
run: my-nginx
spec:
containers:
- name: my-nginx
image: nginx
ports:
- containerPort: 80
volumeMounts:
- mountPath: /usr/share/nginx/html
name: nginx-pvc
volumes:
- name: nginx-pvc
persistentVolumeClaim:
# आपके द्वारा बनाया गया PVC नाम
claimName: my-provisioner
microk8s kubectl apply -f my-pod.yml deployment.apps/my-nginx created root@dlp:~# microk8s kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES my-nginx-66fc75ffb8-lkbzz 1/1 Running 0 2m45s 10.1.142.88 dlp.srv.world <none> <none>root@dlp:~# microk8s kubectl exec my-nginx-66fc75ffb8-lkbzz -- df /usr/share/nginx/html Filesystem 1K-blocks Used Available Use% Mounted on 10.0.0.35:/home/nfsshare/default-my-provisioner-pvc-74a17dbd-6743-4472-9519-4f0b765fa2b4 164028416 0 155623424 0% /usr/share/nginx/html # परीक्षण सूचकांक फ़ाइल बनाने के लिए पहुँच की पुष्टि करें root@dlp:~# echo "Nginx Index" > index.html root@dlp:~# microk8s kubectl cp index.html my-nginx-66fc75ffb8-lkbzz:/usr/share/nginx/html/index.html root@dlp:~# curl 10.1.142.88 Nginx Index # हटाते समय, PVC को हटाने के लिए, फिर PV को भी गतिशील रूप से हटा दिया जाता है root@dlp:~# microk8s kubectl delete deployment my-nginx deployment.apps "my-nginx" deleted root@dlp:~# microk8s kubectl delete pvc my-provisioner persistentvolumeclaim "my-provisioner" deleted root@dlp:~# microk8s kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE pvc-fbf13c3e-0c3d-4ab0-bd26-0f139fdf1643 30Gi RWX Delete Bound container-registry/registry-claim microk8s-hostpath <unset> 120m |
[4] | स्टेटफुलसेट का उपयोग करने के लिए, [volumeClaimTemplates] निर्दिष्ट करना संभव है। |
root@dlp:~# microk8s kubectl get storageclass NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE microk8s-hostpath (default) microk8s.io/hostpath Delete WaitForFirstConsumer false 122m nfs-client cluster.local/nfs-client-nfs-subdir-external-provisioner Delete Immediate true 24m
root@dlp:~#
vi statefulset.yml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: my-mginx
spec:
serviceName: my-mginx
replicas: 1
selector:
matchLabels:
app: my-mginx
template:
metadata:
labels:
app: my-mginx
spec:
containers:
- name: my-mginx
image: nginx
volumeMounts:
- name: data
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: data
spec:
# StorageClass नाम निर्दिष्ट करें
storageClassName: nfs-client
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 5Gi
microk8s kubectl apply -f statefulset.yml statefulset.apps/my-mginx created root@dlp:~# microk8s kubectl get statefulset NAME READY AGE my-mginx 1/1 10sroot@dlp:~# microk8s kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES my-mginx-0 1/1 Running 0 15s 10.1.142.89 dlp.srv.world <none> <none>root@dlp:~# microk8s kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE data-my-mginx-0 Bound pvc-ea072275-904a-4529-9fd1-453b4c5ff007 5Gi RWO nfs-client <unset> 46sroot@dlp:~# microk8s kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE pvc-ea072275-904a-4529-9fd1-453b4c5ff007 5Gi RWO Delete Bound default/data-my-mginx-0 nfs-client <unset> 72s pvc-fbf13c3e-0c3d-4ab0-bd26-0f139fdf1643 30Gi RWX Delete Bound container-registry/registry-claim microk8s-hostpath <unset> 124m |
Sponsored Link |
|