subpath for configmap claim available and kubernetes persistent-volumes persistent-volume-claims

for - Kubernetes reclamo de volumen persistente indefinidamente en estado pendiente



no persistent volumes available for this claim and no storage class is set (3)

Con el aprovisionamiento dinámico, no debería tener que crear PV y PVC por separado. En Kubernetes 1.6+, hay aprovisionadores predeterminados para GKE y algunos otros entornos de nube, que deberían permitirle crear un PVC y aprovisionar automáticamente un PV y un Disco persistente subyacente para usted.

Para más información sobre el aprovisionamiento dinámico, consulte:

https://kubernetes.io/blog/2017/03/dynamic-provisioning-and-storage-classes-kubernetes/

Creé un PersistentVolume procedente de un disco persistente de Google Compute Engine que ya había formateado y aprovisioné con datos. Kubernetes dice que el PersistentVolume está disponible.

kind: PersistentVolume apiVersion: v1 metadata: name: models-1-0-0 labels: name: models-1-0-0 spec: capacity: storage: 200Gi accessModes: - ReadOnlyMany gcePersistentDisk: pdName: models-1-0-0 fsType: ext4 readOnly: true

Luego creé un PersistentVolumeClaim para poder adjuntar este volumen a múltiples pods a través de múltiples nodos. Sin embargo, kubernetes dice indefinidamente que está en un estado pendiente.

kind: PersistentVolumeClaim apiVersion: v1 metadata: name: models-1-0-0-claim spec: accessModes: - ReadOnlyMany resources: requests: storage: 200Gi selector: matchLabels: name: models-1-0-0

¿Alguna idea? Siento que puede haber algo mal con el selector ...

¿Es incluso posible preconfigurar un disco persistente con datos y tener pods a través de múltiples nodos que todos puedan leer desde él?


Enfrenté el mismo problema en el que PersistentVolumeClaim se encontraba en la fase pendiente de forma indefinida. Intenté proporcionar el storageClassName como "predeterminado" en PersistentVolume, tal como lo hice para PersistentVolumeClaim, pero no solucionó este problema.

Hice un cambio en mi persistentvolume.yml y moví la configuración PersistentVolumeClaim en la parte superior del archivo y luego PersistentVolume como la segunda configuración en el archivo yml. Se ha solucionado ese problema.

Debemos asegurarnos de que primero se crea PersistentVolumeClaim y luego se crea el PersistentVolume para resolver este problema de fase "Pendiente".

Estoy publicando esta respuesta después de probarla varias veces, con la esperanza de que pueda ayudar a alguien que está luchando con ella.


Rápidamente me di cuenta de que PersistentVolumeClaim establece por defecto el campo storageClassName como standard cuando no está especificado. Sin embargo, al crear un PersistentVolume, storageClassName no tiene un valor predeterminado, por lo que el selector no encuentra una coincidencia.

Lo siguiente me funcionó:

kind: PersistentVolume apiVersion: v1 metadata: name: models-1-0-0 labels: name: models-1-0-0 spec: capacity: storage: 200Gi storageClassName: standard accessModes: - ReadOnlyMany gcePersistentDisk: pdName: models-1-0-0 fsType: ext4 readOnly: true --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: models-1-0-0-claim spec: accessModes: - ReadOnlyMany resources: requests: storage: 200Gi selector: matchLabels: name: models-1-0-0