¿Qué permisos necesito para gestionar el almacenamiento y crear PVC?

Solucionar errores de permisos en las reclamaciones de volúmenes persistentes.

Nube privada virtual Infraestructura clásica

Cuando se crea una PVC, esta permanece en un estado pendiente. Al ejecutar oc describe pvc <pvc_name>, verá un mensaje de error similar al siguiente:

User doesn't have permissions to create or manage Storage

La clave de API de IAM o la clave de API de infraestructura de IBM Cloud almacenada en el secreto de Kubernetes storage-secret-store del clúster no tiene todos los permisos necesarios para suministrar almacenamiento persistente.

Recupere la clave de IAM o la clave de API de infraestructura de IBM Cloud almacenada en el secreto de Kubernetes storage-secret-store del clúster y verifique que se ha utilizado la clave de API correcta.

  1. Ejecute el siguiente comando para obtener la clave API que se almacena en el secreto storage-secret-store.

    Mandato de ejemplo

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

    Salida de ejemplo

    [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 clave de API de IAM se muestra en la sección Bluemix.iam_api_key de la salida de la CLI. Si Softlayer.softlayer_api_key está vacío a la vez, se utiliza la clave de API de IAM para determinar los permisos de la infraestructura. El usuario que ejecuta la primera acción que necesita el rol de acceso a la plataforma de Administrador de IAM en un grupo de recursos y región establece automáticamente la clave de API de IAM. Si se ha establecido otra clave de API en Softlayer.softlayer_api_key, esta clave prevalece sobre la clave de API de IAM. Softlayer.softlayer_api_key se establece cuando un administrador del clúster ejecuta el mandato ibmcloud oc credentials-set.

  2. Si necesitas ponerte en contacto con el servicio de asistencia, puedes utilizar el siguiente comando para extraer las credenciales del secreto del clúster, encontrar la clave y aplicar el hash. Este paso evita que pegue accidentalmente su clave API en el caso de asistencia. Ejecute el siguiente comando para recuperar la clave actual almacenada en el clúster.

    oc  get secret -n kube-system storage-secret-store -o custom-columns=:.data.slclient\\.toml | base64 -d | grep g2_api_key | md5sum
    
  3. Si desea cambiar las credenciales, actualice la clave de API que se utiliza.

    1. Inicie una sesión en la cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.
    2. Para actualizar la clave de la API de IAM, utiliza el. ibmcloud oc api-key resetcomando Para actualizar la clave de infraestructura IBM Cloud, utiliza el. ibmcloud oc credential setcomando
    3. Espere entre 10 y 15 minutos hasta que se actualice el secreto de Kubernetes storage-secret-store y luego verifique que la clave se ha actualizado.
        oc get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decode
        ```
    
  4. Si la clave de API es correcta, verifique que la clave tiene el permiso correcto para suministrar almacenamiento persistente.

    1. Póngase en contacto con el propietario de la cuenta para verificar el permiso de la clave de API.
    2. Como titular de la cuenta, selecciona Gestionar > Acceso (IAM) en el menú de navegación de la consola de IBM Cloud.
    3. Seleccione Usuarios y localice el usuario cuya clave de API desea utilizar.
    4. En el menú de acciones, seleccione Gestionar detalles de usuario.
    5. Vaya al separador Infraestructura clásica.
    6. Amplíe la categoría Cuenta y verifique que se ha asignado el permiso Añadir/actualizar almacenamiento (capa de almacenamiento).
    7. Amplíe la categoría Servicios y verifique que se ha asignado el permiso Gestión de almacenamiento.
  5. Elimine la PVC que ha fallado.

    oc delete pvc <pvc_name>
    
  6. Vuelva a crear la PVC.

    oc apply -f pvc.yaml