¿Por qué mi PVC permanece en un estado pendiente?

Solucionar problemas con las reclamaciones de volúmenes persistentes que permanecen en estado pendiente para Cloud Object Storage.

Este tema de resolución de problemas solo se aplica a los clústeres de Red Hat OpenShift que ejecutan la versión 3.11.

Cuando crea un PVC y ejecuta oc get pvc <pvc_name>, la PVC permanece en un estado Pendiente, incluso después de esperar algún tiempo.

Durante la creación y el enlace de la PVC, el plugin de IBM Cloud Object Storage ejecuta varias tareas diferentes. Cada tarea puede fallar y provocar un mensaje de error distinto.

Describa la PVC y revise los mensajes de error comunes.

  1. Localice la causa raíz de que la PVC permanezca en estado Pending.
    oc describe pvc <pvc_name> -n <namespace>
    
  2. Revise las descripciones y las resoluciones de los mensajes de error comunes.
Mensajes de error de almacenamiento en bloque
Mensaje de error Descripción Pasos para resolverlo
can't get credentials: can't get secret <secret_name>: secrets "<secret_name>" not found El secreto de Kubernetes que contiene las credenciales de servicio de IBM Cloud Object Storage no está en el mismo espacio de nombres que la PVC o el pod. Consulte La creación de PVC o pod falla debido a que no se encuentra el secreto de Kubernetes.
can't get credentials: Wrong Secret Type.Provided secret of type XXXX.Expected type ibm/ibmc-s3fs El secreto de Kubernetes que ha creado para la instancia de servicio de IBM Cloud Object Storage no incluye type: ibm/ibmc-s3fs. Edite el secreto de Kubernetes que contiene las credenciales de IBM Cloud Object Storage y añada o modifique el valor de type por ibm/ibmc-s3fs.
Bad value for ibm.io/object-store-endpoint XXXX: scheme is missing. Must be of the form http://<hostname> or https://<hostname> Bad value for ibm.io/iam-endpoint XXXX: scheme is missing. Must be of the form http://<hostname> or https://<hostname> El punto final de API s3fs o de API de IAM tiene un formato incorrecto, o no se ha podido recuperar el punto final de API s3fs en función de la ubicación del clúster. Consulte No se puede crear la PVC porque el punto final de API de s3fs es incorrecto.
object-path can't be set when auto create is enabled Ha especificado un subdirectorio existente en el grupo que desea montar en la PVC utilizando la anotación ibm.io/object-path. Si configura un subdirectorio, debe desactivar la función de creación automática de buckets. En la PVC, establezca ibm.io/auto-create-bucket: "false" y especifique el nombre del grupo existente en ibm.io/bucket.
bucket auto-create must be enabled when bucket auto-delete is enabled En la PVC, ha establecido ibm.io/auto-delete-bucket: true para suprimir automáticamente los datos, el grupo y el PV cuando elimine la PVC. Esta opción necesita que ibm.io/auto-create-bucket se establezca en true y que ibm.io/bucket se establezca en "" a la vez. En la PVC, establezca ibm.io/auto-create-bucket: true e ibm.io/bucket: "" de modo que el grupo se cree automáticamente con un nombre con el formato tmp-s3fs-xxxx.
bucket can't be set when auto-delete is enabled En la PVC, ha establecido ibm.io/auto-delete-bucket: true para suprimir automáticamente los datos, el grupo y el PV cuando elimine la PVC. Esta opción necesita que ibm.io/auto-create-bucket se establezca en true y que ibm.io/bucket se establezca en "" a la vez. En la PVC, establezca ibm.io/auto-create-bucket: true e ibm.io/bucket: "" de modo que el grupo se cree automáticamente con un nombre con el formato tmp-s3fs-xxxx.
can't create bucket using API key without service-instance-id Si desea utilizar las claves de API de IAM para acceder a su instancia de servicio de IBM Cloud Object Storage, debe almacenar la clave de API y el ID de la instancia de servicio de IBM Cloud Object Storage en un secreto de Kubernetes. Consulte Creación de un secreto para las credenciales de servicio de almacenamiento de objetos.
object-path “<subdirectory_name>” not found inside bucket <bucket_name> Ha especificado un subdirectorio existente en el grupo que desea montar en la PVC utilizando la anotación ibm.io/object-path. Este subdirectorio no se ha encontrado en el grupo que ha especificado. Verifique que el subdirectorio que ha especificado en ibm.io/object-path existe en el grupo que ha especificado en ibm.io/bucket.
BucketAlreadyExists: The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again. Ha establecido ibm.io/auto-create-bucket: true y ha especificado un nombre de grupo al mismo tiempo, o bien ha especificado un nombre de grupo que ya existe en IBM Cloud Object Storage. Los nombres de grupo deben ser exclusivos en todas las instancias de servicio y regiones de IBM Cloud Object Storage. Asegúrese de que ha establecido ibm.io/auto-create-bucket: false y de que ha especificado un nombre de grupo que es exclusivo en IBM Cloud Object Storage. Si desea utilizar el plugin de IBM Cloud Object Storage para crear automáticamente un nombre de grupo, establezca ibm.io/auto-create-bucket: true e ibm.io/bucket: "". El grupo se crea con un nombre exclusivo en el formato tmp-s3fs-xxxx. Si desea especificar un nombre para el depósito creado automáticamente, configure ibm.io/auto-create-bucket: true y ibm.io/auto-delete-bucket: false y ibm.io/bucket: "<bucket_name>".
can't access bucket <bucket_name>: NotFound: Not Found Ha intentado acceder a un grupo que no ha creado, o la clase de almacenamiento y el punto final de la API de s3fs que ha especificado no coinciden con la clase de almacenamiento y el punto final de la API de s3fs que se han utilizado al crear el grupo. Consulte No puedo acceder a un grupo existente.
Put https://s3-api.dal-us-geo.objectstorage.service.networklayer.com/<bucket_name>: net/http: invalid header field value "AWS4-HMAC-SHA256 Credential=1234a12a123a123a1a123aa1a123a123 \n/20190412/us-standard/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=12aa1abc123456aabb12aas12aa123456sb123456abc" for key Authorization Los valores del secreto de Kubernetes no se han codificado correctamente en base64. Revise los valores del secreto de Kubernetes y codifique cada valor en base64. También puede utilizar el mandato oc create secret para crear un nuevo secreto y dejar que Kubernetes codifique automáticamente sus valores en base64.
can't access bucket <bucket_name>: Forbidden: Forbidden Ha especificado ibm.io/auto-create-bucket: false y ha intentado acceder a un grupo que no ha creado, la clave de acceso secreta o el ID de clave de acceso de las credenciales de HMAC de IBM Cloud Object Storage son incorrectas o el punto final regional del grupo ha cambiado. No puede acceder a un grupo que no ha creado. Cree automáticamente un grupo estableciendo ibm.io/auto-create-bucket: true e ibm.io/bucket: "". Si es el propietario del grupo, consulte La creación de la PVC falla debido a credenciales erróneas o acceso denegado para comprobar sus credenciales.
can't create bucket <bucket_name>: AccessDenied: Access Denied Ha especificado ibm.io/auto-create-bucket: true para crear automáticamente un grupo en IBM Cloud Object Storage, pero las credenciales que ha especificado en el secreto de Kubernetes tienen asignado el rol de acceso al servicio de Lector de IAM. Este rol no permite crear un grupo en IBM Cloud Object Storage. Consulte La creación de la PVC falla debido a credenciales erróneas o acceso denegado.
can't create bucket <bucket_name>: AccessForbidden: Access Forbidden Ha especificado ibm.io/auto-create-bucket: true y ha proporcionado un nombre de un grupo existente en ibm.io/bucket. Además, las credenciales que ha especificado en el secreto de Kubernetes tienen asignado el rol de acceso al servicio de Lector de IAM. Este rol no permite crear un grupo en IBM Cloud Object Storage. Para utilizar un grupo existente, establezca ibm.io/auto-create-bucket: false y especifique el nombre del grupo existente en ibm.io/bucket. Para crear automáticamente un grupo utilizando el secreto de Kubernetes existente, establezca ibm.io/bucket: "" y siga La creación de la PVC falla debido a credenciales erróneas o acceso denegado para verificar las credenciales del secreto de Kubernetes.
can't create bucket <bucket_name>: SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. For more information, see REST Authentication and SOAP Authentication for details La clave de acceso al secreto de IBM Cloud Object Storage de las credenciales de HMAC que ha proporcionado en el secreto de Kubernetes no es correcta. Consulte La creación de la PVC falla debido a credenciales erróneas o acceso denegado.
can't create bucket <bucket_name>: InvalidAccessKeyId: The AWS Access Key ID you provided does not exist in our records El ID de clave de acceso o la clave de acceso al secreto de IBM Cloud Object Storage de las credenciales de HMAC que ha proporcionado en el secreto de Kubernetes no son correctos. Consulte La creación de la PVC falla debido a credenciales erróneas o acceso denegado.
can't create bucket <bucket_name>: CredentialsEndpointError: failed to load credentials
can't access bucket <bucket_name>: CredentialsEndpointError: failed to load credentials
La clave de la API de IBM Cloud Object Storage de las credenciales de IAM y el GUID de la instancia de servicio de IBM Cloud Object Storage no son correctos. Consulte La creación de la PVC falla debido a credenciales erróneas o acceso denegado.
TokenManagerRetrieveError: error retrieving the token Este error se produce cuando se crea una PVC con credenciales IAM en un clúster que no tiene un acceso de salida público. Si tu clúster no tiene acceso público de salida, crea una instancia de IBM Cloud Object Storage que utilice credenciales HMAC.
set-access-policy not supported for classic cluster Este error se produce al instalar el en ibm-object-storage-plugin un clúster Classic y al configurar la opción bucketAccessPolicy=true. La opción bucketAccessPolicy=true solo se utiliza con clústeres VPC. Instale el plugin y establezca la opción bucketAccessPolicy=false.