콘솔로 kro 캐퍼빌리티 생성
콘솔로 kro 캐퍼빌리티 생성
AWS Management Console을 사용해 Amazon EKS 클러스터에 kro 캐퍼빌리티를 생성하는 방법을 설명합니다.
출처: 문서
본문
kro 캐퍼빌리티 생성
- https://console.aws.amazon.com/eks/home#/clusters 에서 Amazon EKS 콘솔을 엽니다.
- 클러스터 이름을 선택해 클러스터 상세 페이지를 엽니다.
- Capabilities 탭을 선택합니다.
- 왼쪽 탐색에서 **kro (Kube Resource Orchestrator)**를 선택합니다.
- Create kro capability를 선택합니다.
- IAM Capability Role에서:
- 이미 IAM 캐퍼빌리티 역할이 있다면 드롭다운에서 선택합니다.
- 역할을 만들어야 한다면 Create kro role을 선택합니다. 그러면 사전 채워진 신뢰 정책과 함께 새 탭에서 IAM 콘솔이 열립니다. kro는 클러스터 내에서 완전히 작동하므로 역할에 추가 IAM 권한이 필요하지 않습니다.
- 역할을 만든 후 EKS 콘솔로 돌아가면 역할이 자동으로 선택됩니다.
참고
ACK와 Argo CD와 달리 kro는 신뢰 정책 외에 추가 IAM 권한이 필요하지 않습니다. kro는 클러스터 내에서 완전히 작동하며 AWS API 호출을 수행하지 않습니다.
- Create를 선택합니다. 캐퍼빌리티 생성 과정이 시작됩니다.
캐퍼빌리티 활성화 확인
Capabilities 탭에서 kro 캐퍼빌리티 상태를 확인합니다. 상태가 CREATING에서 ACTIVE로 바뀔 때까지 기다리세요. 활성화되면 캐퍼빌리티를 사용할 준비가 된 것입니다.
캐퍼빌리티 상태와 문제 해결에 대한 정보는 캐퍼빌리티 리소스 다루기를 참고하세요.
Kubernetes 리소스 관리 권한 부여
kro 캐퍼빌리티를 만들면 AmazonEKSKROPolicy와 함께 EKS 접근 항목이 자동 생성되어 kro가 ResourceGraphDefinition과 그 인스턴스를 관리할 수 있습니다. 그러나 ResourceGraphDefinition에 정의된 기본 Kubernetes 리소스(Deployments, Services, ConfigMaps 등)를 만드는 권한은 기본적으로 부여되지 않습니다.
이것은 의도적인 설계로, 최소 권한 원칙을 따릅니다. 서로 다른 ResourceGraphDefinition에 서로 다른 권한이 필요합니다. ResourceGraphDefinition이 관리할 리소스에 따라 kro에 필요한 권한을 직접 구성해야 합니다.
빠르게 시작하거나 테스트, 개발 환경에서는 AmazonEKSClusterAdminPolicy를 사용하세요.
- EKS 콘솔에서 클러스터의 Access 탭으로 이동합니다.
- Access entries 아래에서 kro 캐퍼빌리티 역할의 항목을 찾습니다(이전에 만든 역할 ARN이 표시됩니다).
- 접근 항목을 선택해 상세 정보를 엽니다.
- Access policies 섹션에서 Associate access policy를 선택합니다.
- 정책 목록에서
AmazonEKSClusterAdminPolicy를 선택합니다. - Access scope에서 Cluster를 선택합니다.
- Associate를 선택합니다.
중요
AmazonEKSClusterAdminPolicy는 모든 Kubernetes 리소스를 생성하고 관리할 수 있는 광범위한 권한을 부여하며, 모든 네임스페이스에서 모든 리소스 유형을 만들 수 있는 기능을 포함합니다. 개발과 POC에는 편리하지만 프로덕션에서 사용해서는 안 됩니다. 프로덕션에서는 ResourceGraphDefinition이 관리할 특정 리소스에 필요한 권한만 부여하는 커스텀 RBAC 정책을 만드세요. 최소 권한 구성에 대한 안내는 kro 권한 구성과 EKS 캐퍼빌리티 보안 고려 사항을 참고하세요.
커스텀 리소스 사용 가능 확인
캐퍼빌리티가 활성화된 후, 클러스터에서 kro 커스텀 리소스를 사용할 수 있는지 확인합니다.
콘솔 사용
- Amazon EKS 콘솔에서 클러스터로 이동합니다.
- Resources 탭을 선택합니다.
- Extensions를 선택합니다.
- CustomResourceDefinitions를 선택합니다.
ResourceGraphDefinition리소스 유형이 나열된 것을 확인할 수 있어야 합니다.
kubectl 사용
kubectl api-resources | grep kro.run
ResourceGraphDefinition 리소스 유형이 나열된 것을 확인할 수 있어야 합니다.
다음 단계
- kro 개념 - kro 개념과 리소스 구성 이해하기
- 캐퍼빌리티 리소스 다루기 - kro 캐퍼빌리티 리소스 관리