GCP 中的 Kubernetes PersistentVolume 问题(部署停留在待定状态)

Kubernetes PersistentVolume issues in GCP ( Deployment stuck in pending )

您好,我正在尝试在 google 云平台上的 kubernetes 上为我的 mongoDB 创建一个持久卷,但我卡在待定状态

这是我的清单:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: account-mongo-depl
  labels:
    app: account-mongo
spec:
  replicas: 1
  serviceName: 'account-mongo'
  selector:
    matchLabels:
      app: account-mongo
  template:
    metadata:
      labels:
        app: account-mongo
    spec:
      volumes:
        - name: account-mongo-storage
          persistentVolumeClaim:
            claimName: account-db-bs-claim
      containers:
        - name: account-mongo
          image: mongo
          volumeMounts:
            - mountPath: '/data/db'
              name: account-mongo-storage
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: account-db-bs-claim
spec:
  storageClassName: do-block-storage
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

---
apiVersion: v1
kind: Service
metadata:
  name: account-mongo-srv
spec:
  type: ClusterIP
  selector:
    app: account-mongo
  ports:
    - name: account-db
      protocol: TCP
      port: 27017
      targetPort: 27017

这是我的 pods 列表

我的 pods 卡在待定状态直到失败

如果您使用的是 GKE,您应该已经设置了动态配置。

  storageClassName: do-block-storage
  accessModes:
    - ReadWriteOnce

"do-block-storage"?你之前在 Digital Ocean 上 运行 吗?您应该能够删除 storageClassName 行并使用 Google 提供的默认供应商。

例如,这是我自己的状态集之一的片段

  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes: [ "ReadWriteOnce" ]
      ## Specify storage class to use nfs (requires nfs provisioner. Leave unset for dynamic provisioning)
      #storageClassName: "nfs"
      resources:
        requests:
          storage: 10G

我在这里没有指定存储 class,所以它使用默认存储,它在 GCP 上作为永久磁盘提供

$ kubectl get storageclass
NAME                 PROVISIONER            RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
standard (default)   kubernetes.io/gce-pd   Delete          Immediate           false                  2y245d