apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: mongo provisioner: rancher.io/local-path volumeBindingMode: WaitForFirstConsumer --- apiVersion: v1 kind: PersistentVolume metadata: name: mongo-pv-volume namespace: database labels: type: local spec: storageClassName: mongo capacity: storage: 50Gi accessModes: - ReadWriteOnce hostPath: path: "/rca/mongodb/data" --- apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: deploy: mongo app.kubernetes.io/component: mongodb name: mongo namespace: database spec: accessModes: - ReadWriteOnce resources: requests: storage: 50Gi storageClassName: mongo --- apiVersion: apps/v1 kind: StatefulSet metadata: name: mongo-statefulset namespace: database labels: app: mongo spec: serviceName: "mongo" replicas: 1 selector: matchLabels: app: mongo template: metadata: labels: app: mongo spec: containers: - name: mongodb image: mongo:3.4 #env: # - name: MONGO_INITDB_ROOT_USERNAME # value: admin # - name: MONGO_INITDB_ROOT_PASSWORD # value: password ports: - containerPort: 27017 name: mongodb volumeMounts: - mountPath: /data/db name: mongo-pv-data volumes: - name: mongo-pv-data persistentVolumeClaim: claimName: mongo --- apiVersion: v1 kind: Service metadata: name: mongo-service namespace: database labels: app: mongo spec: ports: - port: 27017 nodePort: 30010 name: mongo type: NodePort selector: app: mongo