MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

कुबेरनेट्स स्टेटफुलसेट एनएफएस लगातार वॉल्यूम के साथ

अगर आपका स्टोरेज क्लास डायनेमिक वॉल्यूम प्रोविज़निंग का समर्थन नहीं करता है, तो आपको मैन्युअल रूप से PV और संबद्ध PVCs बनाने होंगे , yaml फ़ाइलों का उपयोग करते हुए, तब VolumeClaimTemplates मौजूदा पीवीसी को आपके स्टेटफुलसेट के पॉड से लिंक करने की अनुमति देगा।

यहां एक कार्यशील उदाहरण दिया गया है:https:/ /github.com/k8s-school/k8s-school/blob/master/examples/MONGODB-install.sh

आपको चाहिए:

  • इसे स्थानीय रूप से https://kind.sigs.k8s.io/ पर चलाएं , जो डायनामिक वॉल्यूम प्रोविज़निंग का समर्थन करते हैं, इसलिए यहां पीवीसी और पीवी स्वचालित रूप से बनाए जाएंगे
  • पीवी और पीवीसी yaml फ़ाइलें निर्यात करें
  • इन yaml फ़ाइल को अपने NFS बैकएंड के लिए अपने PV और PVC बनाने के लिए टेम्पलेट के रूप में उपयोग करें।

यहाँ आपको Kind पर क्या मिलेगा:

$ ./MONGODB-install.sh               
+ kubectl apply -f 13-12-mongo-configmap.yaml
configmap/mongo-init created
+ kubectl apply -f 13-11-mongo-service.yaml
service/mongo created
+ kubectl apply -f 13-14-mongo-pvc.yaml
statefulset.apps/mongo created
$ kubectl get pods
NAME      READY   STATUS    RESTARTS   AGE
mongo-0   2/2     Running   0          8m38s
mongo-1   2/2     Running   0          5m58s
mongo-2   2/2     Running   0          5m45s
$ kubectl get pvc
NAME               STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
database-mongo-0   Bound    pvc-05247511-096e-4af5-8944-17e0d8222512   1Gi        RWO            standard       8m42s
database-mongo-1   Bound    pvc-f53c35a4-6fc0-4b18-b5fc-d7646815c0dd   1Gi        RWO            standard       6m2s
database-mongo-2   Bound    pvc-2a711892-eeee-4481-94b7-6b46bf5b76a7   1Gi        RWO            standard       5m49s
$ kubectl get pv 
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                      STORAGECLASS   REASON   AGE
pvc-05247511-096e-4af5-8944-17e0d8222512   1Gi        RWO            Delete           Bound    default/database-mongo-0   standard                8m40s
pvc-2a711892-eeee-4481-94b7-6b46bf5b76a7   1Gi        RWO            Delete           Bound    default/database-mongo-2   standard                5m47s
pvc-f53c35a4-6fc0-4b18-b5fc-d7646815c0dd   1Gi        RWO            Delete           Bound    default/database-mongo-1   standard                6m1s

और एक पीवीसी का डंप (volumeClaimTemplate . द्वारा यहां जेनरेट किया गया है) क्योंकि ओडीएफ तरह की डायनेमिक वॉल्यूम प्रोविजनिंग):

$ kubectl get pvc database-mongo-0 -o yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: "yes"
    pv.kubernetes.io/bound-by-controller: "yes"
    volume.beta.kubernetes.io/storage-provisioner: rancher.io/local-path
    volume.kubernetes.io/selected-node: kind-worker2
  creationTimestamp: "2020-10-16T15:05:20Z"
  finalizers:
  - kubernetes.io/pvc-protection
  labels:
    app: mongo
  managedFields:
    ...
  name: database-mongo-0
  namespace: default
  resourceVersion: "2259"
  selfLink: /api/v1/namespaces/default/persistentvolumeclaims/database-mongo-0
  uid: 05247511-096e-4af5-8944-17e0d8222512
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: standard
  volumeMode: Filesystem
  volumeName: pvc-05247511-096e-4af5-8944-17e0d8222512
status:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 1Gi
  phase: Bound

और संबंधित पीवी:

kubectl get pv pvc-05247511-096e-4af5-8944-17e0d8222512 -o yaml     
apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    pv.kubernetes.io/provisioned-by: rancher.io/local-path
  creationTimestamp: "2020-10-16T15:05:23Z"
  finalizers:
  - kubernetes.io/pv-protection
  managedFields:
    ...
  name: pvc-05247511-096e-4af5-8944-17e0d8222512
  resourceVersion: "2256"
  selfLink: /api/v1/persistentvolumes/pvc-05247511-096e-4af5-8944-17e0d8222512
  uid: 3d1e894e-0924-411a-8378-338e48ba4a28
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 1Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: database-mongo-0
    namespace: default
    resourceVersion: "2238"
    uid: 05247511-096e-4af5-8944-17e0d8222512
  hostPath:
    path: /var/local-path-provisioner/pvc-05247511-096e-4af5-8944-17e0d8222512_default_database-mongo-0
    type: DirectoryOrCreate
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - kind-worker2
  persistentVolumeReclaimPolicy: Delete
  storageClassName: standard
  volumeMode: Filesystem
status:
  phase: Bound



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - रूट स्तर पर $ प्रोजेक्ट नेस्टेड दस्तावेज़

  2. मोंगोडब:प्रत्येक सरणी स्थिति के लिए पूर्णांकों की कुल सरणी

  3. नेवला:किसी अन्य दस्तावेज़ में रेफरी के रूप में उपयोग किए जाने पर संग्रह पॉप्युलेट नहीं हो रहा है

  4. Queryable<T> का वापस IMongoQuery में अनुवाद करें

  5. एक MongoDB दस्तावेज़ के _id को कैसे अपडेट करें?