Digital Ocean 上的 K8s - 未绑定的即时 PersistentVolumeClaims

K8s on Digital Ocean - unbound immediate PersistentVolumeClaims

我正在尝试在 Digital Ocean 上的 Kubernetes 集群中创建一个 PostgreSQL 数据库。为此,我创建了一个 StatefulSet 和一个 Service。并设置一个卷以持久化数据,我看了一下Add Block Storage Volumes tutorial。我的 StatefulSetService 的 k8s 配置在下面。

我只是用了一个 volumeClaimTemplates 。存储 class do-block-storage 存在于集群中(volumeBindingMode 设置为 Immediate)。 pvpvc 已成功创建。

A volumeClaimTemplates that is responsible for locating the block storage volume by name csi-pvc. If a volume by that name does not exist, one will be created.

但是我的 pod 陷入 CrashLoopBackOff。 我得到:0/1 nodes are available: 1 pod has unbound immediate PersistentVolumeClaims. Back-off restarting failed container

值得一提的是我的集群只有一个节点

任何人都可以帮助我理解为什么吗?谢谢

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: postgres-db
spec:
  serviceName: postgres-db
  selector:
    matchLabels:
      role: db
      app: my-app
  replicas: 1
  template:
    metadata:
      labels:
        role: db
        app: my-app
    spec:
      containers:
      - name: postgres
        image: postgres:13
        imagePullPolicy: "IfNotPresent"
        ports:
          - containerPort: 5432
        volumeMounts:
        - mountPath: "/data"
          name: csi-pvc
        - mountPath: "/config"
          name: postgres-config-map
      volumes:
        - name: postgres-config-map
          configMap:
            name: postgres-config
  volumeClaimTemplates:
  - metadata:
      name: csi-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 5Gi
      storageClassName: do-block-storage

---
apiVersion: v1
kind: Service
metadata:
  name: postgres-db
  labels:
    role: db
    app: my-app
spec:
  selector:
    role: db
    app: my-app
  ports:
  - port: 5432
    targetPort: 5432
  type: ClusterIP

我设法通过先添加 pvc 而不是使用 volumeClaimTemplates 来解决我的问题