Argo CD를 사용하는 지속적 배포 - Amazon EKS

이 페이지 개선에 도움 주기

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

Argo CD를 사용하는 지속적 배포

Argo CD는 Kubernetes에 대한 선언에 기반한 GitOps의 지속적 전송 도구입니다. Argo CD를 사용하면 여러 클러스터 및 환경에서 애플리케이션의 배포 및 수명 주기 관리를 자동화할 수 있습니다. Argo CD는 Git 리포지토리, 헬름 레지스트리(HTTP 및 OCI), OCI 이미지를 비롯한 여러 소스 유형을 지원하므로 보안 및 규정 준수 요구 사항이 서로 다른 조직에 유연성을 제공합니다.

EKS 기능을 사용하면 Argo CD는 AWS에서 완전하게 관리되므로 클러스터에서 Argo CD 컨트롤러 및 해당 종속성을 설치, 유지 관리 및 조정할 필요가 없습니다.

Argo CD 작동 방식

Argo CD는 GitOps 패턴을 따릅니다. 이때 애플리케이션 소스(Git 리포지토리, 헬름 레지스트리 또는 OCI 이미지)는 원하는 애플리케이션 상태를 정의하기 위한 신뢰할 수 있는 소스입니다. Argo CD Application 리소스를 생성할 때 애플리케이션 매니페스트와 대상 Kubernetes 클러스터 및 네임스페이스를 포함하는 소스를 지정합니다. Argo CD는 클러스터의 소스 및 라이브 상태를 지속적으로 모니터링하므로 변경 사항을 자동으로 동기화하여 클러스터 상태가 원하는 상태와 일치하는지 확인합니다.

참고

Argo CD의 EKS 기능을 사용하면 Argo CD 소프트웨어는 워커 노드가 아닌 AWS 컨트롤 플레인에서 실행됩니다. 즉, 워커 노드는 Git 리포지토리 또는 헬름 레지스트리에 직접 액세스할 필요가 없습니다. 이 기능은 AWS 계정의 소스 액세스를 처리합니다.

Argo CD는 다음과 같은 세 가지 기본 리소스 유형을 제공합니다.

  • Application: Git 리포지토리에서 대상 클러스터로의 배포를 정의함

  • ApplicationSet: 다중 클러스터 배포를 위해 템플릿에서 여러 애플리케이션을 생성함

  • AppProject: 애플리케이션에 대한 논리적 그룹화 및 액세스 제어를 제공함

예제: Argo CD 애플리케이션 생성

다음 예제에서는 Argo CD Application 리소스를 생성하는 방법을 보여줍니다.

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: guestbook namespace: argocd spec: project: default source: repoURL: https://github.com/argoproj/argocd-example-apps.git targetRevision: HEAD path: guestbook destination: name: in-cluster namespace: guestbook syncPolicy: automated: prune: true selfHeal: true
참고

클러스터를 등록할 때 사용한 클러스터 이름으로 destination.name을 사용합니다(예: 로컬 클러스터의 경우 in-cluster). 이 destination.server 필드는 EKS 클러스터 ARN에서도 작동하지만 가독성을 높이려면 클러스터 이름을 사용하는 것이 좋습니다.

Argo CD의 이점

Argo CD는 Git 리포지토리에서 애플리케이션 구성을 정의하는 GitOps 워크플로를 구현하고, Argo CD는 원하는 상태와 일치하도록 애플리케이션을 자동으로 동기화합니다. 이 Git 중심 접근 방식은 모든 변경 사항에 대한 완전한 감사 추적을 제공하고 쉬운 롤배을 지원하며 기존 코드 검토 및 승인 프로세스와 자연스럽게 통합됩니다. Argo CD는 Git의 원하는 상태와 클러스터의 실제 상태 사이의 드리프트를 자동으로 감지하고 조정하여 선언된 구성과 일관되게 배포를 유지합니다.

Argo CD를 사용하면 단일 Argo CD 인스턴스의 여러 클러스터에서 애플리케이션을 배포 및 관리할 수 있으므로 다중 클러스터 및 다중 리전 환경에서 작업을 단순화할 수 있습니다. Argo CD UI는 시각화 및 모니터링 기능을 제공하여 애플리케이션의 배포 상태, 상태 및 기록을 볼 수 있습니다. UI는 원활한 인증 및 권한 부여를 위해 AWS Identity Center(이전의 AWS SSO)에 통합되어 기존 ID 관리 인프라를 사용하여 액세스를 제어할 수 있습니다.

EKS 관리형 기능의 일환으로 Argo CD는 AWS에서 완전하게 관리되므로 Argo CD 인프라를 설치, 구성 및 유지 관리할 필요가 없습니다. AWS에서 조정, 패치 적용 및 운영 관리를 처리하므로 팀은 도구 유지 관리가 아닌 애플리케이션 제공에 집중할 수 있습니다.

AWS Identity Center와 통합

EKS 관리형 기능은 Argo CD와 AWS Identity Center 간 직접 통합을 제공하여 사용자에게 원활한 인증 및 권한 부여를 지원합니다. Argo CD 기능을 활성화하면 Identity Center 그룹 및 사용자를 Argo CD RBAC 역할에 매핑하도록 AWS Identity Center 통합을 구성하여 Argo CD에서 애플리케이션에 액세스하고 이를 관리할 수 있는 사용자를 제어할 수 있습니다.

다른 EKS 관리형 기능과 통합

Argo CD는 다른 EKS 관리형 기능과 통합됩니다.

  • AWS Controllers for Kubernetes(ACK): Argo CD를 사용하여 여러 클러스터에서 ACK 리소스 배포를 관리하여 AWS 인프라에 대한 GitOps 워크플로를 지원합니다.

  • Kube Resource Orchestrator(kro): Argo CD를 사용하여 여러 클러스터에 kro 구성을 배포하므로 Kubernetes 자산 전반에서 일관된 리소스 구성을 사용할 수 있습니다.

Argo CD 시작하기

Argo CD의 EKS 기능을 시작하는 방법:

  1. Argo CD가 소스에 액세스하고 애플리케이션을 관리하는 데 필요한 권한이 있는 IAM 기능 역할을 생성 및 구성하세요.

  2. AWS 콘솔, AWS CLI 또는 기본 코드형 인프라를 통해 EKS 클러스터에서 Argo CD 기능 리소스를 생성하세요.

  3. 리포지토리 액세스를 구성하고 애플리케이션 배포를 위해 클러스터를 등록하세요.

  4. 선언적 소스에서 애플리케이션을 배포하기 위한 Application 리소스를 생성하세요.