Ubuntu 22.04
Sponsored Link

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) ऑब्जेक्ट बनाएं।
# PV परिभाषा बनाएँ

root@ctrl:~#
vi nfs-pv.yml
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

root@ctrl:~#
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

# PVC परिभाषा बनाएं

root@ctrl:~#
vi nfs-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  # कोई PVC नाम
  name: nfs-pvc
spec:
  accessModes:
  - ReadWriteMany
  resources:
     requests:
       storage: 10Gi

root@ctrl:~#
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:~#
kubectl create -f nginx-nfs.yml

deployment.apps/nginx-nfs created
root@ctrl:~#
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
मिलान सामग्री