De quais permissões eu preciso para gerenciar o armazenamento e criar PVCs?
Resolva erros de permissão relacionados a reivindicações de volume persistente.
Nuvem Privada Virtual Infraestrutura clássica
Quando você cria uma PVC, a PVC permanece pendente. Ao executar oc describe pvc <pvc_name>, você vê uma mensagem de erro semelhante à seguinte:
User doesn't have permissions to create or manage Storage
A chave de API do IAM ou a chave de API da infraestrutura da IBM Cloud que está armazenada no segredo de Kubernetes storage-secret-store de seu cluster não possui todas as permissões necessárias para provisionar armazenamento persistente.
Recupere a chave do IAM ou a chave de API da infraestrutura da IBM Cloud que está armazenada no segredo de Kubernetes storage-secret-store de seu cluster e verifique se a chave de API correta é usada.
-
Execute o seguinte comando para obter a chave de API armazenada no segredo
storage-secret-store.Exemplo de comando
oc get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decodeSaída de exemplo
[Bluemix] iam_url = "https://iam.cloud.ibm.com" iam_client_id = "bx" iam_client_secret = "bx" iam_api_key "IAM-API-KEY" refresh_token = "" pay_tier = "paid" containers_api_route = "https://us-south.containers.cloud.ibm.com" encryption = true containers_api_route_private = "https://private.us-south.containers.cloud.ibm.com" [Softlayer] encryption = true softlayer_username = "" softlayer_api_key = "" softlayer_endpoint_url = "https://api.service.softlayer.com/rest/v3" softlayer_iam_endpoint_url = "https://api.service.softlayer.com/mobile/v3" softlayer_datacenter = "dal10" softlayer_token_exchange_endpoint_url = "https://iam.cloud.ibm.com" [VPC] g2_token_exchange_endpoint_url = "https://iam.bluemix.net" g2_riaas_endpoint_url = "https://us-south.iaas.cloud.ibm.com" g2_riaas_endpoint_private_url = "https://us-south.private.iaas.cloud.ibm.com" g2_resource_group_id = "............" g2_api_key = ".............." encryption = true provider_type = "g2" iks_token_exchange_endpoint_private_url = "https://private.us-south.containers.cloud.ibm.com"A chave de API do IAM é listada na seção
Bluemix.iam_api_keyde sua saída da CLI. Se oSoftlayer.softlayer_api_keyestiver vazio ao mesmo tempo, a chave de API do IAM será usada para determinar suas permissões de infraestrutura. A chave de API do IAM é configurada automaticamente pelo usuário que executa a primeira ação que requer a função de acesso à plataforma Administrador do IAM em um grupo de recursos e região. Se uma chave de API diferente for configurada emSoftlayer.softlayer_api_key, essa chave terá precedência sobre a chave de API do IAM. OSoftlayer.softlayer_api_keyé configurado quando um administrador de cluster executa o comandoibmcloud oc credentials-set. -
Se precisar entrar em contato com o suporte, poderá usar o seguinte comando para extrair as credenciais do segredo do cluster, localizar a chave e fazer o hash. Essa etapa evita que você cole acidentalmente sua chave de API no caso de suporte. Execute o seguinte comando para recuperar a chave atual armazenada no cluster.
oc get secret -n kube-system storage-secret-store -o custom-columns=:.data.slclient\\.toml | base64 -d | grep g2_api_key | md5sum -
Se desejar mudar as credenciais, atualize a chave de API que é usada.
- Efetue login na sua conta. If applicable, target the appropriate resource group. Configure o contexto para o seu cluster.
- Para atualizar a chave da API do IAM, use o comando
ibmcloud oc api-key reset. Para atualizar a chave de infraestrutura do IBM Cloud, use o comandoibmcloud oc credential set. - Aguarde cerca de 10 a 15 minutos para o segredo de Kubernetes
storage-secret-storeatualizar e, em seguida, verifique se a chave foi atualizada.
oc get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decode ``` -
Se a chave de API estiver correta, verifique se a chave tem a permissão correta para provisionar armazenamento persistente.
- Entre em contato com o proprietário da conta para verificar a permissão da chave de API.
- Como titular da conta, selecione Gerenciar > Acesso (IAM) na barra de navegação do console do IBM Cloud.
- Selecione Usuários e localize o usuário cuja chave de API você deseja usar.
- No menu de ações, selecione Gerenciar detalhes do usuário.
- Acesse a guia Infraestrutura clássica.
- Expanda a categoria Conta e verifique se a permissão Incluir/Fazer upgrade do armazenamento (Camada de armazenamento) está designada.
- Expanda a categoria Serviços e verifique se a permissão Gerenciar armazenamento está designada.
-
Remova a PVC que falhou.
oc delete pvc <pvc_name> -
Recrie a PVC.
oc apply -f pvc.yaml