持久卷存储始终处于丢失阶段

Persistent Volume Storage always in Lost phase

我有一个损坏的 mongo 容器未初始化,我怀疑我可以通过清理所有存储来修复它。因此,我删除了正在使用的持久存储,但现在,我创建的每个新存储都处于“丢失”阶段,并且在 mongo 的 POD 创建中找不到它。

这是我用来创建 PV 的 .yml 文件:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: "yes"
    pv.kubernetes.io/bound-by-controller: "yes"
    volume.beta.kubernetes.io/storage-class: standard
    volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/gce-pd
  creationTimestamp: "2018-08-11T09:19:29Z"
  finalizers:
  - kubernetes.io/pvc-protection
  labels:
    environment: test
    role: mongo
  name: mongo-persistent-storage-mongo-db-0
  namespace: default
  resourceVersion: "122299922"
  selfLink: /api/v1/namespaces/default/persistentvolumeclaims/mongo-persistent-storage-mongo-db-0
  uid: a68de459-9d47-11e8-84b1-42010a800138
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  volumeMode: Filesystem
  volumeName: pvc-a68de459-9d47-11e8-84b1-42010a800135
status:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 20Gi
  phase: Bound

这是我在重新启动 mongo POD 时遇到的错误:

error while running "VolumeBinding" filter plugin for pod "mongo-db-0": could not find v1.PersistentVolume "pvc-a68de459-9d47-11e8-84b1-42010a800135"

我已经尝试过更改 PV 名称和 ID,但没有成功。

This is the .yml file that I'm using to create the PV

您似乎使用了绑定到特定 PV 的清单。

如果您删除唯一字段并让集群为您动态提供新的 PV,怎么样?

示例:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  labels:
    environment: test
    role: mongo
  name: mongo-persistent-storage-mongo-db-0
  namespace: default
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  volumeMode: Filesystem