De quels droits dois-je disposer pour gérer le stockage et créer des réservations de volume persistant ?
Dépannage des erreurs d'autorisation liées aux revendications de volumes persistants.
Cloud privé virtuel Infrastructure classique
Lorsque vous créez une réservation de volume persistant, elle reste à l'état En attente. Lorsque vous exécutez le programmeoc describe pvc <pvc_name>, vous obtenez un message d'erreur semblable au suivant :
User doesn't have permissions to create or manage Storage
La clé d'API IAM ou la clé d'API de l'infrastructure IBM Cloud qui est stockée dans le secret Kubernetes storage-secret-store de votre cluster ne dispose pas des droits requis pour mettre à disposition le stockage persistant.
Récupérez la clé d'API IAM ou la clé d'API de l'infrastructure IBM Cloud qui est stockée dans le secret Kubernetes storage-secret-store de votre cluster et vérifiez que la clé d'API correcte est utilisée.
-
Exécutez la commande suivante pour obtenir la clé API qui est stockée dans le secret
storage-secret-store.Exemple de commande
oc get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decodeExemple de sortie
[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"La clé d'API IAM est répertoriée dans la section
Bluemix.iam_api_keyde votre sortie CLI. Si aucune valeurSoftlayer.softlayer_api_keyn'est définie au même moment, la clé d'API IAM est utilisée pour déterminer vos droits sur l'infrastructure. La clé d'API IAM est définie automatiquement par l'utilisateur qui exécute la première action nécessitant le rôle d'accès à la plateforme IAM Administrateur dans un groupe de ressources et une région. Si une autre clé d'API est définie dansSoftlayer.softlayer_api_key, cette clé est prioritaire sur la clé d'API IAM. La valeurSoftlayer.softlayer_api_keyest définie lorsqu'un administrateur de cluster exécute la commandeibmcloud oc credentials-set. -
Si vous devez contacter l'assistance, vous pouvez utiliser la commande suivante pour extraire les informations d'identification du secret du cluster, trouver la clé et la hacher. Cette étape vous évite de coller accidentellement votre clé API dans le dossier d'assistance. Exécutez la commande suivante pour récupérer la clé actuelle stockée sur le cluster.
oc get secret -n kube-system storage-secret-store -o custom-columns=:.data.slclient\\.toml | base64 -d | grep g2_api_key | md5sum -
Si vous souhaitez modifier les données d'identification, mettez à jour la clé d'API qui est utilisée.
- Connectez-vous à votre compte. Le cas échéant, ciblez le groupe de ressources approprié. Définissez le contexte de votre cluster.
- Pour mettre à jour la clé API IAM, utilisez la commande
ibmcloud oc api-key reset. Pour mettre à jour la clé d'infrastructure IBM Cloud, utilisez la commandeibmcloud oc credential set. - Attendez 10 à 15 minutes que la mise à jour du secret Kubernetes
storage-secret-storesoit effectuée, puis vérifiez que la clé est mise à jour.
oc get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decode ``` -
Si la clé d'API est correcte, vérifiez qu'elle est dotée des droits appropriés permettant de mettre à disposition le stockage persistant.
- Contactez le propriétaire de compte pour vérifier les droits de la clé d'API.
- En tant que titulaire du compte, sélectionnez Gérer > Accès (IAM) dans le menu de navigation de la console IBM Cloud.
- Sélectionnez Utilisateurs et recherchez l'utilisation dont vous souhaitez utiliser la clé d'API.
- Dans le menu Actions, sélectionnez Gérer les détails de l'utilisateur.
- Accédez à l'onglet Infrastructure classique.
- Développez la catégorie Compte et vérifiez que l'autorisation d'ajouter ou de mettre à niveau du stockage (StorageLayer) est affectée.
- Développez la catégorie Services et vérifiez que les droits Gestion de stockage sont affectés.
-
Supprimez la réservation de volume persistant qui a échoué.
oc delete pvc <pvc_name> -
Recréer le PVC.
oc apply -f pvc.yaml