Satellite Config에 클러스터에 대한 액세스 권한 부여
기본적으로 Satellite 위치에서 작성되는 클러스터에는 Satellite Config 컴포넌트가 자동으로 설치됩니다. 그러나 Satellite Config가 사용하는 서비스 계정에는 각 클러스터에 있는 Kubernetes 리소스를 보고 관리하는 데 필요한, 적절한 액세스 권한을 부여해야 합니다.
Satellite 구성에서 클러스터를 관리하려면 클러스터에 대한 관리 액세스 권한이 필요합니다. 다음 방법 중 하나를 사용하여 액세스 권한을 설정할 수 있습니다.
- 클러스터 생성 시 자동으로 수행됩니다. Satellite 스토리지 템플리트를 사용하려면 이 옵션을 선택하십시오.
- 클러스터 작성 후 수동으로. 더 많은 액세스를 제어하고 Satellite 스토리지 템플리트 사용을 계획하지 않으려면 이 옵션을 선택하십시오.
Satellite Config 액세스를 부여하지 않는 경우 나중에 Satellite Config 기능을 사용하여 클러스터에 대한 Kubernetes 리소스를 보거나 배치할 수 없습니다.
클러스터에 대한 Satellite Config 액세스 권한을 자동으로 부여하기
클러스터를 생성할 때 관련 옵션을 지정하여 Satellite Config에 클러스터에 대한 액세스 권한을 부여할 수 있습니다.
콘솔에서 Kubernetes 리소스를 관리하기 위한 Satellite 구성 액세스를 제공하려면 클러스터를 작성할 때 Satellite 구성에 대한 클러스터 관리 액세스 사용 을 선택하십시오. CLI를 사용하여 액세스를 설정하려면 클러스터를 작성할 때 --enable-config-admin 옵션을 지정하십시오.
클러스터 작성 시 Satellite 구성 액세스를 제공하지 않은 경우, 수동으로 Satellite 클러스터에 대한 액세스 구성 의 단계를 따르십시오.
클러스터에 대한 ‘ Satellite ’ 구성 권한을 수동으로 부여하기
클러스터 생성 시점에 Satellite Config에 클러스터에 대한 액세스 권한을 부여하지 않았더라도, 수동으로 액세스 권한을 설정할 수 있습니다.
다음 옵션 중에서 선택하십시오.
- Satellite 클러스터 작성 시 관리자 액세스:
ibmcloud oc cluster create satellite명령의--enable-config-admin옵션을 사용하여 콘솔 또는 CLI에서 클러스터를 작성할 때 관리자 권한을 사용으로 설정할 수 있습니다. 클러스터를 작성한 후 명령행에서ibmcloud ks cluster config를 실행하여 일회성 로그인을 수행해야 합니다. - 퍼블릭 클라우드에 있는 클러스터에 대한 관리자 액세스 권한: Satellite Config에 기존 클러스터 등록을 참조하십시오.
- 사용자 정의 액세스 또는 관리자 액세스에 대해 선택하지 않은 Satellite 클러스터에 대한 액세스: 다음 단계를 완료하십시오.
액세스를 사용자 정의하거나 클러스터 작성 시 관리자 액세스에 대해 선택하지 않은 Satellite 클러스터에 대한 액세스를 추가하려면 다음을 수행하십시오.
-
Satellite 클러스터에 액세스하십시오.
-
클러스터 그룹에 있는 각 클러스터에 대해, Satellite Config에 Kubernetes 리소스를 관리할 권한을 부여하십시오. 클러스터 관리자 액세스 권한, 범위가 클러스터 전체인 사용자 정의 액세스 권한, 특정 프로젝트로 범위 지정된 사용자 정의 액세스 권한 옵션 중에서 선택하십시오. 자세한 내용은 ‘ Kubernetes ’ 문서를 참조하십시오.
사용자 지정 액세스 옵션을 선택하면, 일부 ‘ Satellite ’ 구성 요소가 작동하지 않습니다. 예를 들어, 특정 리소스에 대한 조회 권한만 부여한 경우, 구독을 사용하여 클러스터 그룹 내에
Kubernetes리소스를 생성할 수 없습니다. 클러스터에 있는 Kubernetes 리소스의 인벤토리를 보려면razee-viewer서비스 계정에 바인드된 적절한 역할이 Satellite Config에 있어야 합니다. 구독을 사용하여 Kubernetes 리소스를 클러스터에 배포하려면, Satellite Config에razee-editor서비스 계정에 할당된 적절한 역할이 있어야 합니다.
클러스터 관리자 액세스 권한
Satellite Config 서비스 계정에 클러스터 관리자 역할에 대한 액세스 권한을 부여합니다.
kubectl create clusterrolebinding razee-cluster-admin --clusterrole=razee-cluster-admin --serviceaccount=razeedeploy:razee-viewer --serviceaccount=razeedeploy:razee-editor --serviceaccount=razeedeploy:razee-satcon
사용자 정의 액세스 권한, 클러스터 전체 범위
Satellite Config에 클러스터에 대해 원하는 조치 및 Kubernetes 리소스에 대한 액세스 권한을 부여하기 위해 사용자 정의 RBAC 정책을 작성합니다.
-
권한을 부여할 조치 및 리소스를 포함하는 클러스터 역할을 작성하십시오. 예를 들면, 다음 명령은 Satellite Config가 클러스터에 있는 모든 Kubernetes 리소스를 나열할 수 있지만 수정할 수는 없도록 뷰어 역할을 작성합니다.
kubectl create clusterrole razee-viewer --verb=get,list,watch --resource="*.*"이 명령의 구성요소 이해하기 컴포넌트 설명 razee-viewer클러스터 역할의 이름입니다(예: razee-viewer).--verb=get,list,watch역할이 권한 부여하는 조치의 쉼표로 구분된 목록입니다. 이 예에서 조치 verb는 뷰어 또는 감사자의 일반적인 역할에 대한 것입니다( get,list,watch). 다른 가능한 동사에 대해서는 ‘ Kubernetes ’ 문서를 참조하십시오.--resource="*.*"역할이 조치를 수행할 수 있도록 권한 부여되는 Kubernetes 리소스의 쉼표로 구분된 목록입니다. 이 예에서는 모든 API 그룹의 모든 Kubernetes 리소스에 대해 액세스 권한이 부여됩니다( "*.*"). 다른 가능한 리소스를 보려면kubectl api-resources -o wide를 실행하십시오. -
Satellite Config 서비스 계정을 이전에 작성된 클러스터 역할에 바인드하는 클러스터 역할 바인딩을 작성하십시오. 이제 Satellite Config가 클러스터에 대한 사용자 정의 액세스 권한을 갖게 됩니다.
kubectl create clusterrolebinding razee-viewer --clusterrole=razee-viewer --serviceaccount=razeedeploy:razee-viewer이 명령의 구성요소 이해하기 컴포넌트 설명 razee-viewer클러스터 역할 바인딩의 이름입니다(예: razee-viewer).--clusterrole=razee-viewer이전에 작성한 클러스터 역할의 이름입니다(예: razee-viewer).--serviceaccount=razeedeploy:razee-viewerSatellite Config 컴포넌트가 기본적으로 사용하도록 설정된 서비스 계정 중 하나의 이름입니다(예: razeedeploy:razee-viewer또는razeedeploy:razee-editor).
사용자 정의 액세스 권한, 특정 프로젝트 범위
Satellite Config에 원하는 조치, Kubernetes 리소스 및 프로젝트(네임스페이스)에 대한 액세스 권한을 부여하기 위해 사용자 정의 RBAC 정책을 작성합니다.
-
역할의 범위가 지정되는 프로젝트의, 권한을 부여할 조치 및 리소스를 포함하는 역할을 작성하십시오. 예를 들면, 다음 명령은 Satellite Config가 프로젝트에 있는 모든 Kubernetes 리소스를 배치하고 업데이트할 수 있도록 편집자 역할을 작성합니다.
kubectl create role razee-editor --namespace=default --verb=get,list,watch,create,update,patch,delete --resource="*.*"이 명령의 구성요소 이해하기 컴포넌트 설명 razee-editor클러스터 역할의 이름입니다(예: razee-editor).--namespace default역할의 범위를 지정할 프로젝트(네임스페이스)입니다(예: default).--verb=get,list,watch,create,update,patch,delete역할이 권한 부여하는 조치의 쉼표로 구분된 목록입니다. 이 예에서 조치 verb는 편집자의 일반적인 역할에 대한 것입니다( get,list,watch,create,update,patch,delete). 다른 가능한 동사에 대해서는 ‘ Kubernetes ’ 문서를 참조하십시오.--resource="*.*"역할이 조치를 수행할 수 있도록 권한 부여되는 Kubernetes 리소스의 쉼표로 구분된 목록입니다. 이 예에서는 모든 API 그룹의 모든 Kubernetes 리소스에 대해 액세스 권한이 부여됩니다( "*.*"). 다른 가능한 리소스를 보려면kubectl api-resources -o wide를 실행하십시오. -
Satellite Config 서비스 계정을 이전에 작성된 클러스터 역할에 바인드하는 역할 바인딩을 작성하십시오. 이제 Satellite Config가 클러스터에 대한 사용자 정의 액세스 권한을 갖게 됩니다.
kubectl create rolebinding razee-editor --namespace=default --role=razee-editor --serviceaccount=razeedeploy:razee-editor이 명령의 구성요소 이해하기 컴포넌트 설명 razee-editor역할 바인딩의 이름입니다(예: razee-editor).--namespace default역할 바인딩의 범위를 지정할 프로젝트(네임스페이스)입니다(예: default). 네임스페이스는 역할이 있는 네임스페이스와 일치해야 합니다.--role=razee-editor이전에 작성한 역할의 이름입니다(예: razee-editor).--serviceaccount=razeedeploy:razee-editorSatellite Config 컴포넌트가 기본적으로 사용하도록 설정된 서비스 계정 중 하나의 이름입니다(예: razeedeploy:razee-viewer또는razeedeploy:razee-editor).
클러스터 그룹 설정 을 계속하고 클러스터를 Satellite 구성 에 등록하십시오.