스토리지를 관리하고 PVC를 작성하는 데 필요한 권한은 무엇입니까?

영구 볼륨 클레임에 대한 권한 오류 해결.

가상 사설 클라우드 전통적인 인프라

PVC 작성 시 PVC의 상태는 보류 중입니다. oc describe pvc <pvc_name>을 실행할 때 다음과 유사한 오류 메시지가 표시됩니다.

User doesn't have permissions to create or manage Storage

IAM API 키 또는 클러스터의 storage-secret-store Kubernetes 시크릿에 저장된 IBM Cloud 인프라 API 키에는 지속적 스토리지를 프로비저닝하는 데 필요한 모든 권한이 없습니다.

클러스터의 storage-secret-store Kubernetes 시크릿에 저장된 IBM Cloud 인프라 API 키 또는 IAM 키를 검색하고 올바른 API 키가 사용되는지 확인하십시오.

  1. 다음 명령을 실행하여 storage-secret-store 비밀키에 저장된 API 키를 가져옵니다.

    명령 예

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

    출력 예

    [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"
    

    IAM API 키는 CLI 출력의 Bluemix.iam_api_key 섹션에 나열되어 있습니다. 동시에 Softlayer.softlayer_api_key가 비어 있으면 인프라 권한을 결정하는 데 IAM API 키가 사용됩니다. IAM API 키는 리소스 그룹 및 지역에서 IAM 관리자 플랫폼 액세스 역할이 필요한 첫 번째 조치를 실행하는 사용자가 자동으로 설정합니다. 서로 다른 API 키가 Softlayer.softlayer_api_key에 설정되면 이 키는 IAM API 키보다 우선합니다. 클러스터 관리자가 Softlayer.softlayer_api_key 명령을 실행하면 ibmcloud oc credentials-set가 설정됩니다.

  2. 지원팀에 문의해야 하는 경우 다음 명령을 사용하여 클러스터 비밀에서 자격 증명을 가져와서 키를 찾은 다음 해시할 수 있습니다. 이 단계를 통해 실수로 API 키를 지원 케이스에 붙여넣는 것을 방지할 수 있습니다. 다음 명령을 실행하여 클러스터에 저장된 현재 키를 검색합니다.

    oc  get secret -n kube-system storage-secret-store -o custom-columns=:.data.slclient\\.toml | base64 -d | grep g2_api_key | md5sum
    
  3. 인증 정보를 변경하려면 사용되는 API 키를 업데이트하십시오.

    1. 계정에 로그인하십시오. If applicable, target the appropriate resource group. 클러스터에 대한 컨텍스트를 설정하십시오.
    2. IAM API 키를 업데이트하려면 ibmcloud oc api-key reset 명령을 사용하십시오. IBM Cloud 인프라 키를 업데이트하려면 ibmcloud oc credential set 명령을 사용하십시오.
    3. storage-secret-store Kubernetes 시크릿이 업데이트될 때까지 약 10 - 15분 동안 기다린 후 키가 업데이트되었는지 확인하십시오.
        oc get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decode
        ```
    
  4. API 키가 올바른 경우 키에 지속적 스토리지를 프로비저닝할 수 있는 올바른 권한이 있는지 확인하십시오.

    1. API 키의 권한을 확인하려면 계정 소유자에게 문의하십시오.
    2. 계정 소유자는 IBM Cloud 콘솔의 탐색 메뉴에서 [관리 ] > [액세스(IAM)] 을 선택하십시오.
    3. 사용자를 선택하고 API 키를 사용할 사용자를 찾으십시오.
    4. 조치 메뉴에서 사용자 세부사항 관리를 선택하십시오.
    5. 클래식 인프라 탭으로 이동하십시오.
    6. 계정 카테고리를 펼치고 스토리지(스토리지 계층) 추가/업그레이드 권한이 지정되었는지 확인하십시오.
    7. 서비스 카테고리를 펼치고 스토리지 관리 권한이 지정되었는지 확인하십시오.
  5. 실패한 PVC를 제거하십시오.

    oc delete pvc <pvc_name>
    
  6. PVC를 다시 작성하십시오.

    oc apply -f pvc.yaml