

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# 기능 Kubernetes 리소스
<a name="capability-kubernetes-resources"></a>

클러스터에서 기능을 활성화한 후에 대부분 클러스터에서 Kubernetes 사용자 지정 리소스를 생성 및 관리하여 클러스터와 상호 작용하기도 합니다. 각 기능은 기능별 기능으로 Kubernetes API를 확장하는 고유한 사용자 지정 리소스 정의(CRD) 세트를 제공합니다.

## Argo CD 리소스
<a name="_argo_cd_resources"></a>

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 개념](argocd-concepts.md) 섹션을 참조하세요.

## kro 리소스
<a name="_kro_resources"></a>

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 개념](kro-concepts.md) 섹션을 참조하세요.

## ACK 리소스
<a name="_ack_resources"></a>

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 개념](ack-concepts.md) 섹션을 참조하세요.

## 리소스 제한
<a name="_resource_limits"></a>

EKS 기능에는 다음과 같은 리소스 제한이 적용됩니다.

 **Argo CD 사용량 제한**:
+ Argo CD 기능 인스턴스당 최대 1,000개의 `Application` 리소스
+ Argo CD 기능 인스턴스당 구성된 최대 100개의 원격 클러스터

 **리소스 구성 제한**:
+ Argo CD의 `Application` 리소스당 최대 150개의 Kubernetes 리소스
+ kro의 `ResourceGraphDefinition`당 최대 64개의 Kubernetes 리소스

**참고**  
이러한 제한은 각 기능 인스턴스에서 관리하는 리소스 수에 적용됩니다. 더 높은 제한이 필요한 경우 여러 클러스터에 기능을 배포할 수 있습니다.

## 다음 단계
<a name="_next_steps"></a>

기능별 태스크 및 고급 구성은 다음 주제를 참조하세요.
+  [ACK 개념](ack-concepts.md) - ACK 개념 및 리소스 수명 주기 이해
+  [Argo CD 작업](working-with-argocd.md) - GitOps 워크플로에 대한 Argo CD 기능 작업
+  [kro 개념](kro-concepts.md) - kro 개념 및 리소스 구성 이해