Welche Berechtigungen benötige ich, um Speicher zu verwalten und PVCs zu erstellen?
Behebung von Berechtigungsfehlern bei Persistent-Volume-Claims.
Virtual Private Cloud Classic-Infrastruktur
Wenn Sie einen PVC erstellen, bleibt der PVC im Wartestatus (pending). Beim Ausführen von oc describe pvc <pvc_name> wird eine Fehlernachricht ähnlich der folgenden angezeigt:
User doesn't have permissions to create or manage Storage
Der IAM-API-Schlüssel oder der API-Schlüssel der IBM Cloud-Infrastruktur, der im geheimen Kubernetes-Schlüssel storage-secret-store Ihres Clusters gespeichert ist, verfügt nicht über die erforderlichen Berechtigungen zum Bereitstellen
von persistentem Speicher.
Rufen Sie den IAM-Schlüssel oder den API-Schlüssel der IBM Cloud-Infrastruktur ab, der im geheimen Kubernetes-Schlüssel storage-secret-store Ihres Clusters gespeichert ist, und stellen Sie sicher, dass der richtige API-Schlüssel verwendet
wird.
-
Führen Sie den folgenden Befehl aus, um den API-Schlüssel abzurufen, der in der Datei
storage-secret-storesecret gespeichert ist.Beispielbefehl
oc get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decodeBeispielausgabe
[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"Der IAM-API-Schlüssel wird im Abschnitt
Bluemix.iam_api_keyder CLI-Ausgabe aufgelistet. WennSoftlayer.softlayer_api_keyzu diesem Zeitpunkt leer ist, wird der IAM-API-Schlüssel verwendet, um Ihre Infrastrukturberechtigungen zu bestimmen. Der IAM-API-Schlüssel wird von dem Benutzer automatisch festgelegt, der die erste Aktion ausführt, die die IAM-Plattformzugriffsrolle Administrator in einer Ressourcengruppe oder Region erfordert. Wenn inSoftlayer.softlayer_api_keyein anderer API-Schlüssel festgelegt ist, hat dieser Schlüssel Vorrang vor dem IAM-API-Schlüssel.Softlayer.softlayer_api_keywird festgelegt, wenn ein Clusteradministrator den Befehlibmcloud oc credentials-setausführt. -
Wenn Sie sich an den Support wenden müssen, können Sie den folgenden Befehl verwenden, um die Anmeldeinformationen aus dem Clustergeheimnis zu ziehen, den Schlüssel zu finden und ihn dann zu hashen. Dieser Schritt verhindert, dass Sie Ihren API-Schlüssel versehentlich in den Support-Fall einfügen. Führen Sie den folgenden Befehl aus, um den aktuell im Cluster gespeicherten Schlüssel abzurufen.
oc get secret -n kube-system storage-secret-store -o custom-columns=:.data.slclient\\.toml | base64 -d | grep g2_api_key | md5sum -
Wenn Sie die Berechtigungsnachweise ändern möchten, aktualisieren Sie den API-Schlüssel, der verwendet wird.
- Melden Sie sich an Ihrem Konto an. If applicable, target the appropriate resource group. Legen Sie den Kontext für den Cluster fest.
- Um den IAM-API-Schlüssel zu aktualisieren, verwenden Sie den Befehl
ibmcloud oc api-key reset. Um den Schlüssel für die IBM Cloud-Infrastruktur zu aktualisieren, verwenden Sie den Befehlibmcloud oc credential set. - Warten Sie 10 bis 15 Minuten, bis der geheime Kubernetes-Schlüssel
storage-secret-storeaktualisiert wurde, und stellen Sie dann sicher, dass der Schlüssel aktualisiert wurde.
oc get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decode ``` -
Wenn der API-Schlüssel korrekt ist, stellen Sie sicher, dass der Schlüssel über die korrekte Berechtigung zum Bereitstellen von persistentem Speicher verfügt.
- Wenden Sie sich an den Kontoeigner, um die Berechtigung des API-Schlüssels zu überprüfen.
- Wählen Sie als Kontoinhaber in der Navigation der IBM Cloud-Konsole Verwalten > Zugriff (IAM) aus.
- Wählen Sie Benutzer aus und suchen Sie den Benutzer, dessen API-Schlüssel Sie verwenden wollen.
- Wählen Sie Benutzerdetails verwalten im Aktionsmenü aus.
- Wechseln Sie zur Registerkarte Klassische Infrastruktur.
- Erweitern Sie die Kategorie Konto und stellen Sie sicher, dass die Berechtigung Speicher hinzufügen/Upgrades für Speicher durchführen (Speicherebene) zugeordnet ist.
- Erweitern Sie die Kategorie Services und stellen Sie sicher, dass die Berechtigung Speicher verwalten zugeordnet ist.
-
Entfernen Sie den PVC, der fehlgeschlagen ist.
oc delete pvc <pvc_name> -
Erstellen Sie die PVC erneut.
oc apply -f pvc.yaml