IBM Cloud 에서 클러스터 액세스 문제 해결 Kubernetes

IBM Cloud Kubernetes 클러스터를 확인하거나 작업하는 데 발생하는 문제를 해결하려면 사용자 액세스 권한과 리소스 그룹 구성을 확인하십시오.

가상 프라이빗 클라우드 클래식 인프라

클러스터를 찾을 수 없습니다. ibmcloud oc cluster ls를 실행할 때 해당 클러스터가 출력에 나열되지 않습니다. 또는 클러스터로 작업할 수 없습니다. ibmcloud oc cluster config 또는 클러스터 고유 명령을 실행했을 때 해당 클러스터를 찾을 수 없습니다.

IBM Cloud에서 각 리소스는 리소스 그룹에 속해야 합니다. 예를 들면, 클러스터 myclusterdefault 리소스 그룹에 속해 있을 수 있습니다.

계정 소유자가 IBM Cloud IAM 플랫폼 액세스 역할을 지정하여 사용자에게 리소스에 대한 액세스 권한을 부여하는 경우, 이 액세스 권한은 특정 리소스나 리소스 그룹에 대한 권한일 수 있습니다. 특정 리소스에 대한 액세스 권한이 부여된 경우에는 리소스 그룹에 대한 액세스 권한이 없습니다. 이 경우에는 액세스 권한이 있는 클러스터에 대해 작업하기 위해 리소스 그룹을 대상으로 지정할 필요가 없습니다. 해당 클러스터가 속한 그룹이 아닌 다른 리소스 그룹을 대상으로 지정하면 해당 클러스터에 대한 조치가 실패할 수 있습니다. 반대로, 리소스 그룹에 대한 액세스 권한의 일부로서 리소스에 대한 액세스 권한을 획득한 경우에는 해당 그룹의 클러스터에 대해 작업하려면 해당 리소스 그룹을 대상으로 지정해야 합니다. CLI 세션의 대상을 해당 클러스터가 속한 리소스 그룹으로 지정하지 않으면 해당 클러스터에 대한 조치가 실패할 수 있습니다.

클러스터를 찾을 수 없거나 이에 대해 작업할 수 없는 경우에는 다음 문제 중 하나가 있는 것입니다.

  • 클러스터 및 해당 클러스터가 속한 리소스 그룹에 대한 액세스 권한이 있으나 CLI 세션이 해당 클러스터가 속한 리소스 그룹을 대상으로 지정하고 있지 않습니다.
  • 클러스터에 대해서는 액세스 권한이 있으나 해당 클러스터가 속한 리소스 그룹에 대해서는 액세스 권한이 없습니다. CLI 세션이 이 리소스 그룹이나 다른 리소스 그룹을 대상으로 지정하고 있습니다.
  • 클러스터에 대한 액세스 권한이 없습니다.

사용자 액세스 권한을 확인하려면 다음을 수행하십시오.

  1. 모든 사용자 권한을 나열하십시오.

    ibmcloud iam user-policies <your_user_name>
    
  2. 클러스터 및 해당 클러스터가 속한 리소스 그룹에 대한 액세스 권한이 있는지 확인하십시오.

    1. Resource Group Name 값이 클러스터의 리소스 그룹이고 Memo 값이 Policy applies to the resource group인 정책을 찾으십시오. 이 정책이 있는 경우에는 리소스 그룹에 대한 액세스 권한이 있는 것입니다. 예를 들어, 다음 정책은 사용자가 ‘ test-rg ’ 리소스 그룹에 대한 액세스 권한을 가지고 있음을 나타냅니다:
        Policy ID:   3ec2c069-fc64-4916-af9e-e6f318e2a16c
        Roles:       Viewer
        Resources:
        Resource Group ID     50c9b81c983e438b8e42b2e8eca04065
        Resource Group Name   test-rg
        Memo                  Policy applies to the resource group
        ```
    2. **Resource Group Name** 값이 클러스터의 리소스 그룹이고, **Service Name** 값이 `containers-kubernetes`이거나 값이 없으며, 그리고 **Memo** 값이 `Policy applies to the resource(s) within the resource group`인 정책을 찾으십시오. 이 정책을 보유한 경우, 클러스터 또는 리소스 그룹 내의 모든 리소스에 액세스할 수 있습니다. 예를 들어, 다음 정책은 사용자가 ‘ `test-rg` ’ 리소스 그룹에 속한 클러스터에 대한 액세스 권한을 가지고 있음을 나타냅니다:
    ```sh {: screen}
        Policy ID:   e0ad889d-56ba-416c-89ae-a03f3cd8eeea
        Roles:       Administrator
        Resources:
        Resource Group ID     a8a12accd63b437bbd6d58fb6a462ca7
        Resource Group Name   test-rg
        Service Name          containers-kubernetes
        Service Instance
        Region
        Resource Type
        Resource
        Memo                  Policy applies to the resource(s) within the resource group
        ```
    3. 이러한 정책이 둘 다 있는 경우에는 4단계의 첫 번째 글머리 기호로 건너뛰십시오. 2a단계의 정책은 없으나 2b단계의 정책은 있는 경우에는 4단계의 두 번째 글머리 기호로 건너뛰십시오. 두 정책이 모두 없는 경우에는 3단계로 진행하십시오.
    
    
  3. 클러스터에 대한 액세스 권한이 있는지, 그리고 이 권한이 해당 클러스터가 속한 리소스 그룹에 대한 액세스 권한의 일부가 아닌지 확인하십시오.

    1. Policy IDRoles 필드를 제외하고 값이 없는 정책을 찾으십시오. 이 정책이 있는 경우에는 전체 계정에 대한 액세스 권한의 일부로서 해당 클러스터에 대한 액세스 권한이 있는 것입니다. 예를 들어, 다음 정책은 사용자가 계정 내의 모든 리소스에 대한 액세스 권한을 가지고 있음을 나타냅니다:
        Policy ID:   8898bdfd-d520-49a7-85f8-c0d382c4934e
        Roles:       Administrator, Manager
        Resources:
        Service Name
        Service Instance
        Region
        Resource Type
        Resource
        ```
    2. **Service Name** 값이 `containers-kubernetes`이며 **Service Instance** 값이 클러스터의 ID인 정책을 찾으십시오. `ibmcloud oc cluster get --cluster <cluster_name>` 실행하여 클러스터 ID를 찾을 수 있습니다. 예를 들어, 다음 정책은 사용자가 특정 클러스터에 대한 액세스 권한을 가지고 있음을 나타냅니다:
    ```sh {: screen}
        Policy ID:   140555ce-93ac-4fb2-b15d-6ad726795d90
        Roles:       Administrator
        Resources:
        Service Name       containers-kubernetes
        Service Instance   df253b6025d64944ab99ed63bb4567b6
        Region
        Resource Type
        Resource
        ```
    3. 두 정책 중 하나가 있는 경우에는 4단계의 두 번째 글머리 기호로 건너뛰십시오. 두 정책이 모두 없는 경우에는 4단계의 세 번째 글머리 기호로 건너뛰십시오.
    
    
  4. 액세스 정책에 따라 다음 선택사항 중 하나를 선택하십시오.

    • 클러스터 및 해당 클러스터가 속한 리소스 그룹에 대한 액세스 권한이 있는 경우:
      1. 리소스 그룹을 대상으로 지정하십시오. 이 리소스 그룹을 변경하기 전까지는 다른 리소스 그룹에 있는 클러스터를 사용할 수 없습니다.
        ibmcloud target -g <resource_group>
        
      2. 클러스터를 대상으로 지정하십시오.
        ibmcloud oc cluster config --cluster <cluster_name_or_ID>
        
    • 클러스터에 대해서는 액세스 권한이 있으나 해당 클러스터가 속한 리소스 그룹에 대해서는 액세스 권한이 없는 경우:
      1. 리소스 그룹을 대상으로 지정하지 마십시오. 이미 리소스 그룹을 대상으로 지정한 경우 대상을 제거하십시오.
        ibmcloud target --unset-resource-group
        
      2. 클러스터를 대상으로 지정하십시오.
        ibmcloud oc cluster config --cluster <cluster_name_or_ID>
        
    • 클러스터에 대한 액세스 권한이 없는 경우:
      1. 계정 소유자에게 이 클러스터에 대한 IBM Cloud IAM 플랫폼 액세스 역할을 지정하도록 요청하십시오.
      2. 리소스 그룹을 대상으로 지정하지 마십시오. 이미 리소스 그룹을 대상으로 지정한 경우 대상을 제거하십시오.
        ibmcloud target --unset-resource-group
        
      3. 클러스터를 대상으로 지정하십시오.
        ibmcloud oc cluster config --cluster <cluster_name_or_ID>