首页 > 解决方案 > K8s pod 有未绑定的即时 PersistentVolumeClaims - mongoDB

问题描述

我正在尝试在我的 Kubernetes 集群(谷歌云平台)中部署 mongoDB。现在我专注于部署的 minikube 本地版本。问题是我遇到了这样的错误: pod has unbound immediate PersistentVolumeClaims

这是我在 minikube 中设置 mongodb 的配置文件:

服务文件:

apiVersion: v1
kind: Service
metadata:
  name: mongo
  labels:
    name: mongo
spec:
  ports:
    - port: 27017
      targetPort: 27017
  clusterIP: None
  selector:
    role: mongo

有状态设置文件:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mongo
spec:
  selector:
    matchLabels:
      role: mongo
  serviceName: "mongo"
  replicas: 1
  template:
    metadata:
      labels:
        role: mongo
        environment: test
    spec:
      terminationGracePeriodSeconds: 10
      containers:
        - name: mongo
          image: mongo
          command:
            - mongod
            - "--replSet"
            - rs0
            - "--smallfiles"
            - "--noprealloc"
          ports:
            - containerPort: 27017
          volumeMounts:
            - name: mongo-persistent-storage
              mountPath: /data/db
        - name: mongo-sidecar
          image: cvallance/mongo-k8s-sidecar
          env:
            - name: MONGO_SIDECAR_POD_LABELS
              value: "role=mongo,environment=test"
  volumeClaimTemplates:
    - metadata:
        name: mongo-persistent-storage
        annotations:
          volume.beta.kubernetes.io/storage-class: "fast"
      spec:
        accessModes: [ "ReadWriteOnce" ]
        resources:
          requests:
            storage: 2Gi

存储类文件:

kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
  name: fast
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-ssd

我在这里想念什么?

标签: mongodbkubernetes

解决方案


我认为问题在于您正在尝试申请

provisioner: kubernetes.io/gce-pd

这不应该在本地工作,因为它是为GCE PD设计的。

对于 minikube,您可以创建hostPathpvc。阅读更多


推荐阅读