apiVersion: apps/v1 kind: ReplicaSet metadata: labels: app: mongo name: mongo namespace: nodejs spec: replicas: 1 selector: matchLabels: app: mongo template: metadata: labels: app: mongo spec: nodeSelector: mongo-node: "true" # Runs only on nodes with this label containers: - image: mongodb/mongodb-community-server name: mongodb imagePullPolicy: Always env: - name: MONGODB_INITDB_ROOT_USERNAME value: admin - name: MONGODB_INITDB_ROOT_PASSWORD value: Mongodb01 volumeMounts: - name: mongo-data-dir mountPath: /data/db resources: limits: cpu: 500m requests: cpu: 200m volumes: - name: mongo-data-dir persistentVolumeClaim: claimName: nodejs-pvc --- apiVersion: v1 kind: Service metadata: labels: app: mongo name: mongo namespace: nodejs spec: ports: - port: 27017 protocol: TCP targetPort: 27017 selector: app: mongo type: LoadBalancer --- apiVersion: v1 kind: PersistentVolume metadata: name: nodejs-pv spec: storageClassName: "" capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain mountOptions: - hard - nfsvers=4.1 nfs: server: 192.168.2.111 path: /mnt/nfs_share/prod/mongodb readOnly: false --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nodejs-pvc namespace: nodejs spec: storageClassName: "" volumeName: nodejs-pv accessModes: - ReadWriteOnce volumeMode: Filesystem resources: requests: storage: 1Gi