Perché il mio PVC rimane in uno stato in sospeso?
Risolvere i problemi relativi alle richieste di volume persistente che rimangono in stato “in sospeso” per Cloud Object Storage.
Questa guida alla risoluzione dei problemi si applica esclusivamente ai cluster di " Red Hat OpenShift " che utilizzano la versione 3.11.
Quando si crea un PVC e si esegue il comando oc get pvc <pvc_name>``, il PVC rimane nello stato “Pending”, anche dopo aver atteso per un po’ di tempo.
Durante la creazione e il bind della PVC, il plug-in IBM Cloud Object Storage esegue varie attività. Ciascuna di esse può non riuscire e causare un messaggio di errore differente.
Descrivi la tua PVC e rivedi i messaggi di errore comuni.
- Trova la causa principale per cui lo stato della PVC resta Pending.
oc describe pvc <pvc_name> -n <namespace> - Esamina le descrizioni e le soluzioni dei messaggi di errore comuni.
| Messaggio di errore | Descrizione | Procedura risolutiva |
|---|---|---|
can't get credentials: can't get secret <secret_name>: secrets "<secret_name>" not found |
Il segreto Kubernetes che contiene le credenziali del tuo servizio IBM Cloud Object Storage non esiste nello stesso spazio dei nomi della PVC o del pod. | Vedi La creazione del pod o della PVC non riesce perché non è possibile trovare il segreto Kubernetes. |
can't get credentials: Wrong Secret Type.Provided secret of type XXXX.Expected type ibm/ibmc-s3fs |
Il segreto Kubernetes che hai creato per la tua istanza del servizio IBM Cloud Object Storage non include il type: ibm/ibmc-s3fs. |
Modifica il segreto Kubernetes che contiene le tue credenziali IBM Cloud Object Storage per aggiungere o modificare il type in 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> |
Il formato dell'endpoint API s3fs o IAM è errato o non è stato possibile richiamare l'endpoint API s3fs sulla base dell'ubicazione del cluster. | Vedi La creazione della PVC non riesce a causa di un endpoint API s3fs errato. |
object-path can't be set when auto create is enabled |
Hai specificato una sottodirectory esistente nel tuo bucket, che vuoi montare nella tua PVC attraverso l'annotazione ibm.io/object-path. Se si imposta una sottodirectory, è necessario disattivare la funzione di creazione automatica
dei bucket. |
Nella tua PVC, imposta ibm.io/auto-create-bucket: "false" e fornisci il nome del bucket esistente in ibm.io/bucket. |
bucket auto-create must be enabled when bucket auto-delete is enabled |
Nella tua PVC, hai impostato ibm.io/auto-delete-bucket: true per eliminare automaticamente i tuoi dati, il bucket e la PV quando rimuovi la PVC. Questa opzione richiede che l'opzione " ibm.io/auto-create-bucket " sia impostata su " true" e che, contemporaneamente, l'opzione " ibm.io/bucket " sia impostata su " "" ". |
Nella tua PVC, imposta ibm.io/auto-create-bucket: true e ibm.io/bucket: "" in modo che il tuo bucket venga creato automaticamente con un nome in formato tmp-s3fs-xxxx. |
bucket can't be set when auto-delete is enabled |
Nella tua PVC, hai impostato ibm.io/auto-delete-bucket: true per eliminare automaticamente i tuoi dati, il bucket e la PV quando rimuovi la PVC. Questa opzione richiede che l'opzione " ibm.io/auto-create-bucket " sia impostata su " true" e che, contemporaneamente, l'opzione " ibm.io/bucket " sia impostata su " "" ". |
Nella tua PVC, imposta ibm.io/auto-create-bucket: true e ibm.io/bucket: "" in modo che il tuo bucket venga creato automaticamente con un nome in formato tmp-s3fs-xxxx. |
can't create bucket using API key without service-instance-id |
Se vuoi utilizzare le chiavi API IAM per accedere alla tua istanza del servizio IBM Cloud Object Storage, devi archiviare la chiave API e l'ID dell'istanza del servizio IBM Cloud Object Storage in un segreto Kubernetes. | Vedi Creazione di un segreto per le credenziali del servizio di archiviazione oggetti. |
object-path “<subdirectory_name>” not found inside bucket <bucket_name> |
Hai specificato una sottodirectory esistente nel tuo bucket, che vuoi montare nella tua PVC attraverso l'annotazione ibm.io/object-path. Questa sottodirectory non è stata trovata nel bucket che hai specificato. |
Verifica che la sottodirectory che hai specificato in ibm.io/object-path esista nel bucket che hai specificato in 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. |
Hai impostato ibm.io/auto-create-bucket: true e specificato contemporaneamente un nome bucket o hai specificato un nome bucket già esistente in IBM Cloud Object Storage. I nomi bucket devono essere univoci tra tutte le istanze
del servizio e le regioni in IBM Cloud Object Storage. |
Assicurati di impostare ibm.io/auto-create-bucket: false e di fornire un nome bucket univoco in IBM Cloud Object Storage. Se vuoi utilizzare il plug-in IBM Cloud Object Storage per creare automaticamente un nome bucket, imposta
ibm.io/auto-create-bucket: true e ibm.io/bucket: "". Il tuo bucket viene creato con un nome univoco in formato tmp-s3fs-xxxx. Se desideri specificare un nome per il bucket creato automaticamente,
imposta ibm.io/auto-create-bucket: true, ibm.io/auto-delete-bucket: false e ibm.io/bucket: "<bucket_name>". |
can't access bucket <bucket_name>: NotFound: Not Found |
Hai tentato di accedere a un bucket che non hai creato, oppure la classe di archiviazione e l'endpoint API s3fs che hai specificato non corrispondono alla classe di archiviazione e all'endpoint API s3fs utilizzati al momento della creazione del bucket. | Vedi impossibile accedere a un bucket esistente. |
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 |
I valori presenti nel tuo segreto Kubernetes non sono codificati correttamente su base64. | Rivedi i valori del tuo segreto Kubernetes e codifica ogni valore su base64. Puoi anche utilizzare il comando oc create secret per creare
un nuovo segreto e lasciare che Kubernetes codifichi automaticamente i tuoi valori su base64. |
can't access bucket <bucket_name>: Forbidden: Forbidden |
Hai specificato ibm.io/auto-create-bucket: false e hai tentato di accedere a un bucket che non hai creato, la chiave di accesso segreta o l'ID della chiave di accesso delle tue credenziali HMAC IBM Cloud Object Storage non sono
corrette o l'endpoint regionale del bucket è stato modificato. |
Non è possibile accedere a un bucket che non è stato creato dall'utente. Crea automaticamente un bucket impostando ibm.io/auto-create-bucket: true e ibm.io/bucket: "". Se sei il proprietario del bucket,
vedi La creazione della PVC non riesce a causa di credenziali errate o di accesso rifiutato per controllare le tue credenziali. |
can't create bucket <bucket_name>: AccessDenied: Access Denied |
Hai specificato ibm.io/auto-create-bucket: true per creare automaticamente un bucket in IBM Cloud Object Storage, ma alle credenziali che hai fornito nel segreto Kubernetes è stato assegnato il ruolo di accesso al servizio IAM
Lettore. Questo ruolo non consente la creazione del bucket in IBM Cloud Object Storage. |
Vedi La creazione della PVC non riesce a causa di credenziali errate o di accesso rifiutato. |
can't create bucket <bucket_name>: AccessForbidden: Access Forbidden |
Hai specificato ibm.io/auto-create-bucket: true e hai fornito il nome di un bucket esistente in ibm.io/bucket. Inoltre, alle credenziali che hai fornito nel segreto Kubernetes è stato assegnato il ruolo di accesso
al servizio IAM Lettore. Questo ruolo non consente la creazione del bucket in IBM Cloud Object Storage. |
Per utilizzare un bucket esistente, imposta ibm.io/auto-create-bucket: false e fornisci il nome del tuo bucket esistente in ibm.io/bucket. Per creare automaticamente un bucket utilizzando un segreto Kubernetes esistente,
imposta ibm.io/bucket: "" e segui La creazione della PVC non riesce a causa di credenziali errate o di accesso rifiutato per verificare le credenziali del
tuo segreto 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 chiave di accesso segreta IBM Cloud Object Storage delle credenziali HMAC che hai fornito nel tuo segreto Kubernetes non è corretta. | Vedi La creazione della PVC non riesce a causa di credenziali errate o di accesso rifiutato. |
can't create bucket <bucket_name>: InvalidAccessKeyId: The AWS Access Key ID you provided does not exist in our records |
L'ID chiave di accesso o la chiave di accesso segreta IBM Cloud Object Storage delle credenziali HMAC che hai fornito nel tuo segreto Kubernetes non sono corretti. | Vedi La creazione della PVC non riesce a causa di credenziali errate o di accesso rifiutato. |
can't create bucket <bucket_name>: CredentialsEndpointError: failed to load credentialscan't access bucket <bucket_name>: CredentialsEndpointError: failed to load credentials |
La chiave API IBM Cloud Object Storage delle tue credenziali IAM e il GUID della tua istanza del servizio IBM Cloud Object Storage non sono corretti. | Vedi La creazione della PVC non riesce a causa di credenziali errate o di accesso rifiutato. |
TokenManagerRetrieveError: error retrieving the token |
Questo errore si verifica quando crei una PVC con le credenziali IAM su un cluster che non dispone di accesso pubblico in uscita. | Se il cluster non dispone di accesso pubblico in uscita, creare un'istanza IBM Cloud Object Storage che utilizzi credenziali HMAC. |
set-access-policy not supported for classic cluster |
Questo errore si verifica quando si installa ibm-object-storage-plugin in un cluster Classic e si imposta l'opzione bucketAccessPolicy=true. L'opzione bucketAccessPolicy=true viene utilizzata solo con
cluster VPC. |
Installare il plug-in e impostare l'opzione bucketAccessPolicy=false. |