Por que minha PVC permanece em um estado pendente?
Este tópico de resolução de problemas se aplica apenas a clusters Red Hat OpenShift que executam a versão 3.11.
Ao criar uma PVC e executar oc get pvc <pvc_name>
, a PVC permanece em um estado Pendente, mesmo após algum tempo.
Durante a criação e a ligação da PVC, muitas tarefas diferentes são executadas pelo plug-in do IBM Cloud Object Storage. Cada tarefa pode falhar e causar uma mensagem de erro diferente.
Descreva seu PVC e revise as mensagens de erro comuns.
- Localize a causa raiz para saber o motivo de o PVC permanecer em um estado Pendente.
oc describe pvc <pvc_name> -n <namespace>
- Revise as descrições e as resoluções comuns da mensagem de erro.
Mensagem de erro | Descrição | Etapas a serem resolvidas |
---|---|---|
can't get credentials: can't get secret <secret_name>: secrets "<secret_name>" not found |
O segredo do Kubernetes que retém suas credenciais de serviço do IBM Cloud Object Storage não existe no mesmo namespace que a PVC ou o pod. | Consulte A criação da PVC ou do pod falha devido à não localização do segredo do Kubernetes. |
can't get credentials: Wrong Secret Type.Provided secret of type XXXX.Expected type ibm/ibmc-s3fs |
O segredo do Kubernetes que você criou para sua instância de serviço do IBM Cloud Object Storage não inclui o type: ibm/ibmc-s3fs . |
Edite o segredo do Kubernetes que retém suas credenciais do IBM Cloud Object Storage para incluir ou mudar o type para 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> |
O terminal de API do s3fs ou da API do IAM tem o formato errado ou o terminal de API do s3fs não pôde ser recuperado com base em seu local do cluster. | Veja A criação da PVC falha devido ao terminal de API do s3fs errado. |
object-path can't be set when auto create is enabled |
Você especificou um subdiretório existente em seu depósito que deseja montar em seu PVC usando a anotação ibm.io/object-path . Se você definir um subdiretório, deverá desativar o recurso de criação automática de bucket. |
Em sua PVC, configure ibm.io/auto-create-bucket: "false" e forneça o nome do depósito existente em ibm.io/bucket . |
bucket auto-create must be enabled when bucket auto-delete is enabled |
No PVC, configure ibm.io/auto-delete-bucket: true para excluir automaticamente seus dados, o depósito e o PV, ao remover o PVC. Essa opção requer que ibm.io/auto-create-bucket seja configurado como true e ibm.io/bucket seja configurado como "" ao mesmo tempo. |
No PVC, configure ibm.io/auto-create-bucket: true e ibm.io/bucket: "" para que seu depósito seja criado automaticamente com um nome no formato tmp-s3fs-xxxx . |
bucket can't be set when auto-delete is enabled |
No PVC, configure ibm.io/auto-delete-bucket: true para excluir automaticamente seus dados, o depósito e o PV, ao remover o PVC. Essa opção requer que ibm.io/auto-create-bucket seja configurado como true e ibm.io/bucket seja configurado como "" ao mesmo tempo. |
No PVC, configure ibm.io/auto-create-bucket: true e ibm.io/bucket: "" para que seu depósito seja criado automaticamente com um nome no formato tmp-s3fs-xxxx . |
can't create bucket using API key without service-instance-id |
Se você deseja usar as chaves da API do IAM para acessar sua instância de serviço do IBM Cloud Object Storage, deve-se armazenar a chave de API e o ID da instância de serviço do IBM Cloud Object Storage em um segredo do Kubernetes. | Consulte Criando um segredo para as credenciais do serviço de armazenamento de objeto. |
object-path “<subdirectory_name>” not found inside bucket <bucket_name> |
Você especificou um subdiretório existente em seu depósito que deseja montar em seu PVC usando a anotação ibm.io/object-path . Esse subdiretório não pôde ser localizado no depósito que você especificou. |
Verifique se o subdiretório que você especificou em ibm.io/object-path existe no depósito especificado em 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. |
Você configurou ibm.io/auto-create-bucket: true e especificou um nome de depósito ao mesmo tempo ou especificou um nome de depósito que já existe no IBM Cloud Object Storage. Os nomes de depósito devem ser exclusivos em todas
as instâncias de serviço e regiões no IBM Cloud Object Storage. |
Certifique-se de configurar ibm.io/auto-create-bucket: false e fornecer um nome de depósito que seja exclusivo no IBM Cloud Object Storage. Para usar o plug-in do IBM Cloud Object Storage para criar automaticamente um nome de
depósito, configure ibm.io/auto-create-bucket: true e ibm.io/bucket: "" . Seu depósito é criado com um nome exclusivo no formato tmp-s3fs-xxxx . Se você quiser especificar um nome de bucket
para o bucket criado automaticamente, defina ' ibm.io/auto-create-bucket: true e ' ibm.io/auto-delete-bucket: false e ' ibm.io/bucket: "<bucket_name>" . |
can't access bucket <bucket_name>: NotFound: Not Found |
Você tentou acessar um depósito que não criou, ou a classe de armazenamento e o terminal de API s3fs especificados não correspondem à classe de armazenamento e ao terminal de API s3fs que foram usados na criação do depósito. | Consulte Não é possível acessar um depósito 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 |
Os valores em seu segredo do Kubernetes não estão codificados corretamente para base64. | Revise os valores em seu segredo do Kubernetes e codifique cada valor para base64. Também é possível usar o comando oc create secret para
criar um novo segredo e deixar que o Kubernetes codifique automaticamente seus valores como base64. |
can't access bucket <bucket_name>: Forbidden: Forbidden |
Você especificou ibm.io/auto-create-bucket: false e tentou acessar um depósito que não foi criado, a chave de acesso secreta ou o ID da chave de acesso de suas credenciais do IBM Cloud Object Storage HMAC estão incorretos ou
o terminal regional do depósito foi mudado. |
Não é possível acessar um depósito que não tenha sido criado por você. Crie automaticamente um depósito em vez de configurar ibm.io/auto-create-bucket: true e ibm.io/bucket: "" . Se você for o proprietário
do depósito, veja A criação da PVC falha devido a credenciais erradas ou acesso negado para verificar suas credenciais. |
can't create bucket <bucket_name>: AccessDenied: Access Denied |
Você especificou ibm.io/auto-create-bucket: true para criar automaticamente um depósito no IBM Cloud Object Storage, mas as credenciais fornecidas no segredo do Kubernetes estão designadas à função de acesso ao serviço Leitor do IAM. Essa função não permite criação de depósito no IBM Cloud Object Storage. |
Consulte A criação do PVC falha devido a credenciais erradas ou a acesso negado. |
can't create bucket <bucket_name>: AccessForbidden: Access Forbidden |
Você especificou ibm.io/auto-create-bucket: true e forneceu um nome de um depósito existente em ibm.io/bucket . Além disso, as credenciais que você forneceu no segredo do Kubernetes estão designadas à função de acesso
ao serviço Leitor do IAM. Essa função não permite criação de depósito no IBM Cloud Object Storage. |
Para usar um depósito existente, configure ibm.io/auto-create-bucket: false e forneça o nome de seu depósito existente em ibm.io/bucket . Para criar automaticamente um depósito usando seu segredo do Kubernetes existente,
configure ibm.io/bucket: "" e siga A criação da PVC falha devido a credenciais erradas ou acesso negado para verificar as credenciais em seu segredo do 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 |
A chave de acesso secreto do IBM Cloud Object Storage de suas credenciais do HMAC que você forneceu em seu segredo do Kubernetes não está correta. | Consulte A criação do PVC falha devido a credenciais erradas ou a acesso negado. |
can't create bucket <bucket_name>: InvalidAccessKeyId: The AWS Access Key ID you provided does not exist in our records |
O ID de chave de acesso do IBM Cloud Object Storage ou a chave de acesso secreto de suas credenciais do HMAC que você forneceu em seu segredo do Kubernetes não estão corretos. | Consulte A criação do PVC falha devido a credenciais erradas ou a acesso negado. |
can't create bucket <bucket_name>: CredentialsEndpointError: failed to load credentials can't access bucket <bucket_name>: CredentialsEndpointError: failed to load credentials |
A chave de API do IBM Cloud Object Storage de suas credenciais do IAM e o GUID de sua instância de serviço do IBM Cloud Object Storage não estão corretos. | Consulte A criação do PVC falha devido a credenciais erradas ou a acesso negado. |
TokenManagerRetrieveError: error retrieving the token |
Esse erro ocorre quando você cria uma PVC com credenciais do IAM em um cluster que não tem acesso público de saída. | Se o seu cluster não tiver acesso público de saída, crie uma instância IBM Cloud Object Storage que use credenciais HMAC. |
set-access-policy not supported for classic cluster |
Esse erro ocorre quando você instala o " ibm-object-storage-plugin em um cluster Classic e define a opção " bucketAccessPolicy=true . A opção " bucketAccessPolicy=true é usada somente
com clusters VPC. |
Instale o plug-in e configure a opção bucketAccessPolicy=false . |