DevOps 엔지니어는 vSphere IaaS control plane에 연결하여 TKG 서비스 클러스터의 수명 주기를 관리하고 프로비저닝합니다. 개발자는 TKG 서비스 클러스터에 연결하여 패키지, 워크로드 및 서비스를 배포합니다. 관리자는 문제를 해결하기 위해 TKG 서비스 클러스터 노드에 직접 액세스해야 할 수도 있습니다. 플랫폼에서는 각 사용 사례와 역할을 지원하는 ID 및 액세스 관리 도구와 방법을 제공합니다.

TKG 서비스 클러스터 액세스 범위가 vSphere 네임스페이스로 지정됨

vSphere 네임스페이스에서 TKG 서비스 클러스터를 프로비저닝합니다. vSphere 네임스페이스를 구성할 때 해당 DevOps 사용 권한(ID 소스, 사용자 및 그룹, 역할 포함)을 설정합니다. 플랫폼은 이러한 사용 권한을 해당 vSphere 네임스페이스에서 프로비저닝된 각 TKG 서비스 클러스터에 전파합니다. 플랫폼은 두 가지 인증 방법인 vCenter Single Sign-OnOIDC 준수 외부 ID 제공자를 지원합니다.

vCenter Single Sign-On 및 Kubectl을 사용한 인증

기본적으로 vCenter Single Sign-On감독자TKG 서비스 클러스터를 포함한 환경에서 인증하는 데 사용됩니다. vCenter Single Sign-On은 vSphere 인프라에 대한 인증을 제공하고 AD/LDAP 시스템과 통합할 수 있습니다. 자세한 내용은 vCenter Single Sign-On을 사용한 vSphere 인증을 참조하십시오.

vCenter Single Sign-On을 사용하여 인증하려면 kubectl용 vSphere 플러그인을 사용합니다. 인증되면 kubectl을 사용하여 TKG 서비스 클러스터의 수명 주기를 선언적으로 프로비저닝 및 관리하고 감독자와 상호 작용합니다.

kubectl용 vSphere 플러그인 플러그인은 kubectl에 따라 다릅니다. kubectl vsphere login 명령으로 인증하는 경우 플러그인은 기본 인증을 사용하여 감독자의 /wcp/login 끝점에 대해 POST 요청을 발급합니다. vCenter Server감독자가 신뢰하는 JWT(JSON Web Token)를 발급합니다.

vCenter Single Sign-On을 사용하여 연결하려면 vCenter SSO 인증을 사용하여 TKG 서비스 클러스터에 연결 항목을 참조하십시오.

외부 ID 제공자 및Tanzu CLI를 사용하여 인증

OpenID Connect 프로토콜을 지원하는 외부 ID 제공자로 감독자를 구성할 수 있습니다. 일단 구성이 완료되면 감독자는 OAuth 2.0 클라이언트로 작동하며 Pinniped 인증 서비스를 통해 Tanzu CLI를 사용하여 클라이언트 연결을 제공합니다. Tanzu CLITKG 서비스 클러스터의 수명 주기 관리 및 프로비저닝을 지원합니다. 각 감독자 인스턴스는 단일 외부 ID 제공자를 지원할 수 있습니다.

pinniped-auth CLI가 작동하도록 인증 플러그인 및 OIDC 발급자가 적절하게 구성되면 tanzu login --endpoint를 사용하여 감독자에 로그인할 때 시스템은 잘 알려진 몇 가지 configmaps를 조회하여 pinniped config 구성 파일을 구축합니다.

외부 OIDC 제공자를 사용하여 연결하려면 외부 ID 제공자를 사용하여 감독자의 TKG 클러스터에 연결 항목을 참조하십시오.

하이브리드 방식을 사용한 인증: Tanzu CLI를 사용한 vCenter SSO

vCenter Single Sign-On을 ID 제공자로 사용 중이고 Tanzu CLI를 사용하려는 경우 하이브리드 접근 방식을 사용하고 두 도구를 모두 사용하여 감독자에 로그인할 수 있습니다. 이 방식은 표준 패키지를 설치하는 데 유용할 수 있습니다. Tanzu CLI 및 vCenter SSO 인증을 사용하여 감독자에 연결의 내용을 참조하십시오.

DevOps 사용자 및 그룹

vSphere 네임스페이스를 구성할 때 설정하는 사용 권한은 DevOps 사용자가 TKG 서비스 클러스터의 수명 주기를 관리하기 위한 것입니다. 사용 권한을 할당할 DevOps 사용자 또는 그룹은 ID 소스에 있어야 합니다. DevOps 사용자는 ID 제공자 자격 증명을 사용하여 인증합니다.

DevOps 사용자는 프로비저닝된 클러스터에 워크로드를 배포하려는 개발자와 같은 다운스트림 사용자에게 클러스터 액세스 권한을 부여할 책임이 있습니다. 이러한 사용자는 ID 제공자를 사용하거나 Kubernetes에 대한 클러스터 역할 및 바인딩을 사용하여 인증합니다. 이에 대해서는 다음 섹션에 자세히 설명되어 있습니다.
참고: vSphere 네임스페이스 사용 권한은 TKG 서비스 클러스터를 생성하고 관리해야 하는 DevOps 사용자를 위한 전용 권한입니다. 이러한 클러스터의 사용자(예: 개발자)는 Kubernetes 인증 메커니즘을 사용합니다.

역할 사용 권한 및 바인딩

TKGS 클러스터를 위한 RBAC(역할 기반 액세스 제어) 시스템에는 vSphere 네임스페이스 사용 권한 및 Kubernetes RBAC 권한 부여의 두 가지 유형이 있습니다. vSphere 관리자는 사용자가 TKG 서비스 클러스터를 생성하고 운영할 수 있도록 vSphere 네임스페이스 사용 권한을 할당합니다. 클러스터 운영자는 Kubernetes RBAC를 사용하여 클러스터 액세스 권한을 부여하고 개발자에게 역할 사용 권한을 할당합니다. 개발자에게 TKG 서비스 클러스터에 대한 vCenter SSO 액세스 권한 부여의 내용을 참조하십시오.

vSphere 네임스페이스편집할 수 있음, 볼 수 있음소유자의 세 가지 역할을 지원합니다. 역할 사용 권한은 TKG 서비스 클러스터를 호스팅하는 vSphere 네임스페이스에 할당되고 범위가 지정됩니다. TKG 서비스 클러스터 호스팅을 위한 vSphere 네임스페이스 구성의 내용을 참조하십시오.

vSphere 네임스페이스에 대한 편집할 수 있음 역할 사용 권한이 부여된 사용자/그룹은 해당 vSphere 네임스페이스에서 TKG 서비스 클러스터를 생성하고, 읽고, 업데이트하고, 삭제할 수 있습니다. 또한 사용자/그룹을 편집 역할에 할당하면 시스템은 해당 vSphere 네임스페이스의 각 클러스터에 RoleBinding을 생성하고 cluster-admin이라는 Kubernetes ClusterRole에 권한을 바인딩합니다. cluster-admin 역할을 통해 사용자는 대상 vSphere 네임스페이스에서 TKG 서비스 클러스터를 프로비저닝하고 운영할 수 있습니다. 이 매핑은 대상 vSphere 네임스페이스에서 kubectl get rolebinding 명령을 사용하여 볼 수 있습니다.
kubectl get rolebinding -n tkgs-cluster-namespace
NAME                                                           ROLE                         AGE
wcp:tkg-cluster-namespace:group:vsphere.local:administrators   ClusterRole/edit             33d
wcp:tkg-cluster-namespace:user:vsphere.local:administrator     ClusterRole/edit             33d

vSphere 네임스페이스에 대한 볼 수 있음 역할 사용 권한이 부여된 사용자/그룹은 해당 vSphere 네임스페이스에 프로비저닝된 TKG 서비스 클러스터 개체에 대한 읽기 전용 액세스 권한을 갖습니다. 그러나 편집할 수 있음 권한과 달리 볼 수 있음 역할의 경우 해당 vSphere 네임스페이스의 TKGS 클러스터에 생성된 Kubernetes RoleBinding이 없습니다. 그 이유는 Kubernetes에는 볼 수 있음 사용 권한이 부여된 사용자/그룹에 바인딩할 수 있는 동등한 읽기 전용 역할이 없기 때문입니다. cluster-admin 이외의 사용자의 경우 Kubernetes RBAC를 사용하여 액세스 권한을 부여합니다. 개발자에게 TKG 서비스 클러스터에 대한 vCenter SSO 액세스 권한 부여의 내용을 참조하십시오.

vSphere 네임스페이스에 대한 소유자 권한이 부여된 사용자/그룹은 해당 vSphere 네임스페이스에서 TKG 서비스 클러스터를 관리할 수 있으며 kubectl을 사용하여 추가 vSphere 네임스페이스를 생성하고 삭제할 수 있습니다. 소유자 역할에 사용자/그룹을 할당하면 시스템에서 ClusterRoleBinding이 생성되어 ClusterRole에 매핑됩니다. 그러면 사용자/그룹이 kubectl을 사용하여 vSphere 네임스페이스를 생성하고 삭제할 수 있습니다. 이 매핑은 동일한 방식을 사용하여 볼 수 없습니다. 이 매핑을 보려면 SSH를 통해 감독자 노드에 연결해야 합니다.
참고: 소유자 역할은 vCenter Single Sign-On ID 소스의 사용자에게 지원됩니다. 외부 ID 제공자의 사용자/그룹에는 소유자 역할을 사용할 수 없습니다.

vSphere 사용 권한

이 표에는 다양한 vSphere IaaS control plane 개인 설정에 필요한 vSphere 사용 권한 유형이 있습니다. 필요한 경우 워크로드 관리를 위한 사용자 지정 vSphere SSO 그룹 및 역할을 생성할 수 있습니다. 플랫폼 운영자를 위한 전용 그룹 및 역할 생성의 내용을 참조하십시오.

표 1. vSphere with Tanzu 개인 설정에 대한 vSphere 사용 권한
개인 설정 vSphere 역할 vSphere SSO 그룹 vSphere 네임스페이스
VI/클라우드 관리자 관리자 관리자 SSO 사용자 및/또는 AD 사용자
DevOps/플랫폼 운영자 관리자가 아닌 역할 또는 사용자 지정 역할 ServiceProviderUsers SSO 사용자 및/또는 AD 사용자
개발자 읽기 전용 또는 없음 없음 SSO 사용자 및/또는 AD 사용자

시스템 관리자 연결

관리자는 TKG 서비스 클러스터 노드에 kubernetes-admin 사용자로 연결할 수 있습니다. vCenter Single Sign-On 인증을 사용할 수 없는 경우 이 방법이 적합할 수 있습니다. 문제 해결을 위해 시스템 관리자는 SSH 및 개인 키를 사용하여 TKG 서비스vmware-system-user로 연결할 수 있습니다. Kubernetes 관리자 및 시스템 사용자로 TKG 서비스 클러스터에 연결의 내용을 참조하십시오.