Di quali autorizzazioni ho bisogno per gestire l'archiviazione e creare le PVC?

Risolvere gli errori relativi alle autorizzazioni per le richieste di volume persistente.

Virtual Private Cloud Infrastruttura classica

Quando crei una PVC, quest'ultima resta in sospeso. Quando si esegue il comando oc describe pvc <pvc_name>``, viene visualizzato un messaggio di errore simile al seguente:

User doesn't have permissions to create or manage Storage

La chiave API IAM o la chiave API dell'infrastruttura IBM Cloud archiviata nel segreto Kubernetes storage-secret-store del tuo cluster non dispone di tutte le autorizzazioni richieste per eseguire il provisioning dell'archiviazione persistente.

Richiama la chiave IAM o la chiave API dell'infrastruttura IBM Cloud archiviata nel segreto Kubernetes storage-secret-store del tuo cluster e verifica che venga utilizzata la chiave API corretta.

  1. Eseguire il seguente comando per ottenere la chiave API memorizzata in storage-secret-store secret.

    Esempio di comando

    oc get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decode
    

    Output di esempio

    [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 chiave API IAM è elencata nella sezione Bluemix.iam_api_key dell'output della tua CLI. Se la Softlayer.softlayer_api_key è al contempo vuota, la chiave API IAM viene utilizzata per determinare le autorizzazioni della tua infrastruttura. La chiave API IAM viene impostata automaticamente dall'utente che esegue la prima azione che richiede il ruolo di accesso alla piattaforma "Amministratore IAM" in un gruppo di risorse e in una regione. Se in Softlayer.softlayer_api_key viene impostata una chiave differente, quest'ultima ha la precedenza rispetto alla chiave API IAM. La Softlayer.softlayer_api_key viene impostata quando un amministratore del cluster esegue il comando ibmcloud oc credentials-set.

  2. Se è necessario contattare l'assistenza, è possibile utilizzare il seguente comando per estrarre le credenziali dal segreto del cluster, trovare la chiave e quindi eseguire l'hash. Questo passaggio impedisce di incollare accidentalmente la chiave API nel caso di assistenza. Eseguire il seguente comando per recuperare la chiave corrente memorizzata nel cluster.

    oc  get secret -n kube-system storage-secret-store -o custom-columns=:.data.slclient\\.toml | base64 -d | grep g2_api_key | md5sum
    
  3. Se vuoi modificare le credenziali, aggiorna la chiave API utilizzata.

    1. Accedi al tuo account. Se applicabile, specifica il gruppo di risorse appropriato. Imposta il contesto per il tuo cluster.
    2. Per aggiornare la chiave API IAM, utilizzare il comando ibmcloud oc api-key reset . Per aggiornare la chiave dell'infrastruttura di IBM Cloud, utilizzare il comando ibmcloud oc credential set.
    3. Attendi circa 10 - 15 minuti l'aggiornamento del segreto Kubernetes storage-secret-store, quindi verifica che la chiave sia aggiornata.
        oc get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decode
        ```
    
  4. Se la chiave API è corretta, verifica che abbia l'autorizzazione corretta per eseguire il provisioning dell'archiviazione persistente.

    1. Contatta il proprietario dell'account per verificare l'autorizzazione della chiave API.
    2. In qualità di titolare dell'account, seleziona Gestisci > Accesso (IAM) dal menu di navigazione nella console di IBM Cloud.
    3. Seleziona Utenti e cerca l'utente di cui vuoi usare la chiave API.
    4. Dal menu delle azioni, seleziona Gestisci i dettagli utente.
    5. Vai alla scheda Infrastruttura classica.
    6. Espandi la categoria Account e verifica che sia stata assegnata l'autorizzazione Aggiungi/esegui upgrade dell'archiviazione (Storage Layer).
    7. Espandi la categoria Servizi e verifica che sia stata assegnata l'autorizzazione Gestione archiviazione.
  5. Rimuovi la PVC con errori.

    oc delete pvc <pvc_name>
    
  6. Ricrea la PVC.

    oc apply -f pvc.yaml