eksctl로 kro 캐퍼빌리티 생성
eksctl로 kro 캐퍼빌리티 생성
eksctl을 사용해 Amazon EKS 클러스터에 kro 캐퍼빌리티를 생성하는 방법을 설명합니다.
출처: 문서
본문
참고
다음 단계는 eksctl 버전
0.215.0이상이 필요합니다. 버전을 확인하려면eksctl version을 실행하세요.
1단계: IAM 캐퍼빌리티 역할 생성
신뢰 정책 파일을 만듭니다.
cat > kro-trust-policy.json
참고
ACK와 Argo CD와 달리 kro는 신뢰 정책 외에 추가 IAM 권한이 필요하지 않습니다. kro는 클러스터 내에서 완전히 작동하며 AWS API 호출을 수행하지 않습니다.
2단계: kro 캐퍼빌리티 생성
eksctl을 사용해 kro 캐퍼빌리티를 생성합니다. region-code를 클러스터가 있는 AWS 리전으로, my-cluster를 클러스터 이름으로 바꾸세요.
eksctl create capability \
--region region-code \
--cluster my-cluster \
--name my-kro \
--type KRO \
--role-arn arn:aws:iam::111122223333:role/KROCapabilityRole
명령은 즉시 반환되지만, 캐퍼빌리티가 활성 상태가 되기까지 시간이 걸립니다.
3단계: 캐퍼빌리티 활성 확인
캐퍼빌리티 상태를 확인합니다. region-code를 클러스터가 있는 AWS 리전으로, my-cluster를 클러스터 이름으로 바꾸세요.
eksctl get capability \
--region region-code \
--cluster my-cluster \
--name my-kro
상태가 ACTIVE로 표시되면 캐퍼빌리티가 준비된 것입니다.
4단계: Kubernetes 리소스 관리 권한 부여
기본적으로 kro는 ResourceGraphDefinition과 그 인스턴스만 생성하고 관리할 수 있습니다. kro가 ResourceGraphDefinition에 정의된 기본 Kubernetes 리소스를 만들고 관리할 수 있게 하려면 캐퍼빌리티의 접근 항목에 AmazonEKSClusterAdminPolicy 접근 정책을 연결하세요.
캐퍼빌리티 역할 ARN을 가져옵니다.
CAPABILITY_ROLE_ARN=$(aws eks describe-capability \
--region region-code \
--cluster-name my-cluster \
--capability-name my-kro \
--query 'capability.roleArn' \
--output text)
클러스터 관리자 정책을 연결합니다.
aws eks associate-access-policy \
--region region-code \
--cluster-name my-cluster \
--principal-arn $CAPABILITY_ROLE_ARN \
--policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \
--access-scope type=cluster
중요
AmazonEKSClusterAdminPolicy는 모든 Kubernetes 리소스를 생성하고 관리할 수 있는 광범위한 권한을 부여하며 시작을 간소화하기 위한 것입니다. 프로덕션에서는 ResourceGraphDefinition이 관리할 특정 리소스에 필요한 권한만 부여하는 더 제한적인 RBAC 정책을 만드세요. 최소 권한 구성에 대한 안내는 kro 권한 구성과 EKS 캐퍼빌리티 보안 고려 사항을 참고하세요.
5단계: 커스텀 리소스 사용 가능 확인
캐퍼빌리티가 활성화된 후, 클러스터에서 kro 커스텀 리소스를 사용할 수 있는지 확인합니다.
kubectl api-resources | grep kro.run
ResourceGraphDefinition 리소스 유형이 나열된 것을 확인할 수 있어야 합니다.
다음 단계
- kro 개념 - kro 개념과 리소스 구성 이해하기
- 캐퍼빌리티 리소스 다루기 - kro 캐퍼빌리티 리소스 관리