인포그랩
home
회사 소개
home

Argo CD 구축하기

소개

Argo CD를 사용하는 이유는 GitOps 방식으로 애플리케이션을 배포하기 위함입니다.
GitOps는 2017년 위브웍스(Weaveworks Inc.)에서 처음 사용한 용어로, DevOps의 실천 방법 중 하나입니다. 특히 이는 클라우드 네이티브 애플리케이션을 대상으로 한 지속적 배포(Continuous Deployment)에 초점을 둡니다. GitOps라는 용어에서 알 수 있듯이, 애플리케이션의 배포와 운영에 관련된 모든 요소를 코드화하고, 깃(Git)을 사용하여 운영(Ops)하는 것이 GitOps의 핵심입니다. 이는 IaC(Infrastructure as Code)에서 파생된 개념으로, 인프라를 코드로 관리하는 것에서 시작되어, 전체 애플리케이션 범위로 확장되었습니다.
GitOps 도구는 Flux, Jenkins X, Tekton 등 다양하지만, Argo CD를 가장 많이 사용합니다.
이번 실습에서는 Argo CD 구축하는 방법을 학습합니다. 이 방법을 배우고 나면 Argo CD를 이용한 GitOps 방식의 CD 파이프라인을 구축할 수 있습니다.

Argo CD란?

Argo CD는 Kubernetes를 위한 선언적 GitOps의 CD 도구입니다.
Argo CD는 Kubernetes 컨트롤러로 구현되어 실행 중인 애플리케이션을 지속적으로 모니터링하고, 현재 라이브 상태를 Git 리포지터리에 명시된 대상 상태와 비교합니다. 라이브 상태가 대상 상태가 아닌, 배포된 애플리케이션은 OutOfSync(동기화되지 않은 것)로 간주합니다. Argo CD는 차이점을 보고하고 시각화하면서 라이브 상태를 원하는 대상 상태로 자동 또는 수동으로 동기화하는 기능을 제공합니다. Git 리포지터리에서 원하는 대상 상태를 수정하면 지정된 대상 환경에 자동으로 적용되고 반영될 수 있습니다.
Argo CD는 원하는 애플리케이션 상태를 정의하기 위한 정보 소스로 Git 리포지터리를 사용하는 GitOps 패턴을 따릅니다. Kubernetes 매니페스트는 여러 가지 방법으로 지정할 수 있습니다.
Kustomize
Helm
Jsonnet
YAML/JSON 형식의 일반 디렉터리
구성 관리 플러그인으로 이뤄진 모든 맞춤형 구성 관리 도구

학습 내용

Argo CD Helm Chart 리포지터리를 구성하는 방법
Argo CD Helm Chart의 구성 정보를 배포 환경에 맞게 설정하는 방법
Helm Chart로 Argo CD를 배포하고 확인하는 방법

아키텍처

사전 준비사항

기본 요건

Kubernetes의 기본 개념
Helm, kubectl 사용법
GitOps 워크플로의 이해

필요 항목

Argo CD를 배포할 Kubernetes 클러스터가 구축되어 있어야 합니다.
TLS/SSL 인증서를 사용할 수 있도록 cert-manager가 구축되어 있어야 합니다.
Argo CD Ingress 리소스를 사용할 수 있도록 NGINX Ingress 컨트롤러가 구축되어 있어야 합니다.