View a markdown version of this page

Argo CD - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Argo CD

Argo CD는 여러 주요 GitOps 원칙을 준수하는 Kubernetes에 널리 사용되는 GitOps 지속적 전달(CD) 도구입니다.

GitOps 지원

영역 도구 기능

선언적 구성

Argo CD는 Git 리포지토리에 저장된 선언적 구성을 사용합니다. 애플리케이션 및 인프라의 원하는 상태는 YAML 파일에 정의됩니다. 이러한 구성은 배포 방법이 아니라 배포해야 할 사항을 설명합니다.

단일 정보 소스로서의 버전 제어 시스템

Git 리포지토리는 전체 시스템의 단일 정보 소스 역할을 합니다. 애플리케이션 및 인프라에 대한 모든 변경은 Git을 통해 이루어집니다. 이렇게 하면 전체 감사 추적과 이전 상태로 롤백할 수 있습니다.

자동 동기화

Argo CD는 Git 리포지토리의 변경 사항을 지속적으로 모니터링합니다. 변경 사항이 감지되면 클러스터의 실제 상태를 Git에 정의된 원하는 상태와 자동으로 동기화합니다. 이렇게 하면 클러스터가 항상 리포지토리에 설명된 상태를 반영합니다.

Kubernetes 네이티브

Argo CD는 Kubernetes 환경을 위해 특별히 설계되었습니다. 애플리케이션 관리를 위해 Kubernetes의 선언적 특성과 사용자 지정 리소스를 활용합니다.

자가 복구 및 드리프트 감지

Argo CD는 클러스터의 라이브 상태를 Git의 원하는 상태와 정기적으로 비교합니다. 드리프트(실제 상태와 원하는 상태 간의 차이)를 감지하면 이러한 불일치를 자동으로 수정할 수 있습니다.

다중 클러스터 및 다중 테넌시 지원

Argo CD는 단일 인스턴스에서 여러 Kubernetes 클러스터를 관리할 수 있습니다. 다중 테넌시를 지원하므로 팀마다 애플리케이션을 독립적으로 관리할 수 있습니다.

애플리케이션 정의

Argo CD의 애플리케이션은 Application CRD(사용자 지정 리소스 정의)를 사용하여 정의됩니다. 이를 통해 Kubernetes 네이티브 방식으로 배포 대상과 방법을 정의할 수 있습니다.

배포 및 릴리스 분리

Argo CD는 코드 배포를 릴리스에서 사용자로 분리합니다. 이는 블루/그린 또는 카나리 배포와 같은 다양한 배포 전략을 통해 달성됩니다.

관찰성 및 감사 가능성

Argo CD는 애플리케이션 및 클러스터의 상태를 관찰하기 위한 웹 UI 및 CLI를 제공합니다. 모든 작업이 로깅되어 변경 사항 및 배포에 대한 명확한 감사 추적을 제공합니다.

보안 및 RBAC

Argo CD는 Kubernetes 역할 기반 액세스 제어(RBAC)와 통합됩니다. 인증 및 권한 부여를 위한 Single Sign-On 통합을 지원합니다.

플러그형 아키텍처

Argo CD는 다양한 소스 제어 관리 시스템, 차트 Helm, Kustomize 및 기타 Kubernetes 매니페스트 형식을 지원합니다. 이러한 유연성을 통해 다양한 환경과 워크플로에 맞출 수 있습니다.

지속적 전송(CD)

Argo CD는 지속적 전달에 중점을 두지만 지속적 통합(CI) 도구와 통합하여 완전한 CI/CD 파이프라인을 생성할 수 있습니다.

Argo CD는 이러한 GitOps 원칙을 준수함으로써 Kubernetes 배포를 관리할 수 있는 강력하고 확장 가능하며 안전한 방법을 제공합니다. 이를 통해 시스템의 운영 상태가 Git 리포지토리에 정의된 원하는 상태와 항상 동기화되고 복잡한 Kubernetes 환경에서 일관성, 신뢰성 및 관리 용이성을 높일 수 있습니다.

Argo CD가 해결할 수 있는 시나리오 및 요구 사항은이 가이드 뒷부분의 Argo CD 사용 사례를 참조하세요. Argo CD와 Flux 간의 비교는이 가이드 뒷부분의 기능 비교를 참조하세요.

자세한 내용은 Argo CD 설명서를 참조하세요.

아키텍처

다음 다이어그램은 EKS 클러스터 내에서 Argo CD를 사용하는 GitOps 기반 CD 워크플로를 보여줍니다. 자세한 내용은 Argo CD 설명서를 참조하세요.

Argo CD 아키텍처 및 워크플로 켜짐 AWS.

여기서 각 항목은 다음과 같습니다.

  • 1단계: 풀 요청(PR) 병합. 개발자는 Git 리포지토리에 저장된 Kubernetes 매니페스트 또는 차트 Helm에 변경 사항을 커밋합니다. PR을 검토하고 기본 브랜치에 병합하면 소스 제어에서 애플리케이션의 원하는 상태가 업데이트됩니다.

  • 2단계: 리포지토리 동기화. Argo CD는 EKS 클러스터의 전용 네임스페이스(argocd) 내에서 실행되며 구성된 Git 리포지토리를 지속적으로 모니터링합니다. 변경 사항을 감지하면 최신 업데이트를 가져와 선언된 상태를 조정합니다.

  • 3단계: 대상 네임스페이스에 배포. Argo CD는 Git의 원하는 상태를 클러스터의 라이브 상태와 비교합니다. 그런 다음 애플리케이션이 적절히 배포되거나 업데이트되도록 대상 워크로드 네임스페이스에 필요한 변경 사항을 적용합니다. 여기에는 배포, 서비스, ConfigMaps 및 보안 암호와 같은 Kubernetes 리소스를 관리하여 Git 소스와의 클러스터 일관성을 유지하는 것이 포함됩니다.