이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
기능 Kubernetes 리소스
클러스터에서 기능을 활성화한 후에 대부분 클러스터에서 Kubernetes 사용자 지정 리소스를 생성 및 관리하여 클러스터와 상호 작용하기도 합니다. 각 기능은 기능별 기능으로 Kubernetes API를 확장하는 고유한 사용자 지정 리소스 정의(CRD) 세트를 제공합니다.
Argo CD 리소스
Argo CD 기능을 활성화하면 다음 Kubernetes 리소스를 생성 및 관리할 수 있습니다.
- 애플리케이션
-
Git 리포지토리에서 대상 클러스터로의 배포를 정의합니다.
Application리소스는 소스 리포지토리, 대상 네임스페이스 및 동기화 정책을 지정합니다. Argo CD 기능 인스턴스당 최대 1,000개의Application리소스를 생성할 수 있습니다. - ApplicationSet
-
템플릿에서 여러
Application리소스를 생성하여 다중 클러스터 및 다중 환경 배포를 활성화합니다.ApplicationSet리소스는 생성기를 사용하여 클러스터 목록, Git 디렉터리 또는 기타 소스에 기반해Application리소스를 동적으로 생성합니다. - AppProject
-
Application리소스에 대한 논리적 그룹화 및 액세스 제어를 제공합니다.AppProject리소스는Application리소스가 사용할 수 있는 리포지토리, 클러스터 및 네임스페이스를 정의하여 다중 테넌시 및 보안 경계를 지원합니다.
Application 리소스 예제:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: project: default source: repoURL: https://github.com/org/repo targetRevision: main path: manifests destination: server: https://kubernetes.default.svc namespace: production
Argo CD 리소스 및 개념에 대한 자세한 내용은 Argo CD 개념 섹션을 참조하세요.
kro 리소스
kro 기능을 활성화하면 다음 Kubernetes 리소스를 생성 및 관리할 수 있습니다.
- ResourceGraphDefinition(RGD)
-
여러 Kubernetes 및 AWS 리소스를 상위 수준의 추상화로 구성하는 사용자 지정 API를 정의합니다. 플랫폼 팀은 가드레일이 있는 재사용 가능한 패턴을 제공하는
ResourceGraphDefinition리소스를 생성합니다. - 사용자 지정 리소스 인스턴스
-
ResourceGraphDefinition리소스를 생성한 후ResourceGraphDefinition에서 정의한 사용자 지정 API의 인스턴스를 생성할 수 있습니다. kro는ResourceGraphDefinition에 지정된 리소스를 자동으로 생성 및 관리합니다.
ResourceGraphDefinition 리소스 예제:
apiVersion: kro.run/v1alpha1 kind: ResourceGraphDefinition metadata: name: web-application spec: schema: apiVersion: v1alpha1 kind: WebApplication spec: name: string replicas: integer resources: - id: deployment template: apiVersion: apps/v1 kind: Deployment # ... deployment spec - id: service template: apiVersion: v1 kind: Service # ... service spec
WebApplication 인스턴스 예제:
apiVersion: v1alpha1 kind: WebApplication metadata: name: my-web-app namespace: default spec: name: my-web-app replicas: 3
이 인스턴스를 적용하는 경우 kro는 ResourceGraphDefinition에 정의된 Deployment 및 Service 리소스를 자동으로 생성합니다.
kro 리소스 및 개념에 대한 자세한 내용은 kro 개념 섹션을 참조하세요.
ACK 리소스
ACK 기능을 활성화하면 Kubernetes 사용자 지정 리소스를 사용하여 AWS 리소스를 생성 및 관리할 수 있습니다. ACK는 50개가 넘는 AWS 서비스에 대해 200개가 넘는 CRD를 제공하므로 Kubernetes 워크로드와 함께 AWS 리소스를 정의하고 Kubernetes에서 전용 AWS 인프라 리소스를 관리할 수 있습니다.
ACK 리소스 예제:
- S3 Bucket
-
Bucket리소스는 버전 관리, 암호화 및 수명 주기 정책을 사용하여 Amazon S3 버킷을 생성 및 관리합니다. - RDS DBInstance
-
DBInstance리소스는 자동 백업 및 유지 관리 기간으로 Amazon RDS 데이터베이스 인스턴스를 프로비저닝 및 관리합니다. - DynamoDB 테이블
-
Table리소스는 프로비저닝된 용량 또는 온디맨드 용량으로 DynamoDB 테이블을 생성 및 관리합니다. - [IAM Role]
-
Role리소스는 AWS 서비스 액세스에 대한 신뢰 정책 및 권한 정책을 사용하여 IAM 역할을 정의합니다. - Lambda 함수
-
Function리소스는 코드, 런타임 및 실행 역할 구성을 통해 Lambda 함수를 생성 및 관리합니다.
Bucket 리소스 사양 예제:
apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-app-bucket spec: name: my-unique-bucket-name-12345 versioning: status: Enabled encryption: rules: - applyServerSideEncryptionByDefault: sseAlgorithm: AES256
ACK 리소스 및 개념에 대한 자세한 내용은 ACK 개념 섹션을 참조하세요.
리소스 제한
EKS 기능에는 다음과 같은 리소스 제한이 적용됩니다.
Argo CD 사용량 제한:
-
Argo CD 기능 인스턴스당 최대 1,000개의
Application리소스 -
Argo CD 기능 인스턴스당 구성된 최대 100개의 원격 클러스터
리소스 구성 제한:
-
Argo CD의
Application리소스당 최대 150개의 Kubernetes 리소스 -
kro의
ResourceGraphDefinition당 최대 64개의 Kubernetes 리소스
참고
이러한 제한은 각 기능 인스턴스에서 관리하는 리소스 수에 적용됩니다. 더 높은 제한이 필요한 경우 여러 클러스터에 기능을 배포할 수 있습니다.
다음 단계
기능별 태스크 및 고급 구성은 다음 주제를 참조하세요.
-
ACK 개념 - ACK 개념 및 리소스 수명 주기 이해
-
Argo CD 작업 - GitOps 워크플로에 대한 Argo CD 기능 작업
-
kro 개념 - kro 개념 및 리소스 구성 이해