ArgoCD 소개

ArgoCD는 CD(Continuous Delivery) 도구로서, Kubernetes에서 CI/CD 파이프라인을 구축하고 운영할 수 있도록 설계되었습니다. GitOps의 핵심 원칙을 따르며 Git 리포지토리에 저장된 애플리케이션의 상태를 Kubernetes 클러스터에 자동으로 동기화합니다. 이를 통해 인프라와 애플리케이션 상태의 일관성을 유지하고 배포 과정을 자동화하여 신속하게 반영할 수 있습니다.

설치 방법

공식문서(https://argo-cd.readthedocs.io/en/stable/#getting-started)에서 제공하는 yaml파일 설치

kubectl create namespace argocd
kubectl apply -n argocd -f <https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml>

 

설치 확인

 

초기 패스워드 확인

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo

 

WEB 접속

kubectl port-forward svc/argocd-server -n argocd 8080:443

 

APP 배포

왼쪽 상단에 [NEW APP] 버튼을 누른다.

 

아래 그림에 내용을 입력한다.

 

 

argocd는 application이라는 단위로 배포할 리소스를 관리한다.

project는 관련된 application을 그룹화하고 구성하는 방법을 정의하는 개념이다.

 

옵션 설명

  • SYNC POLICY : 배포 동기화 정책을 설정하는 옵션
  • SET DELETION FINALIZER : 리소스를 삭제할 때 finalizer를 설정하여 삭제를 완료하기 전에 추가 작업을 수행할 수 있게 한다.
  • SKIP SCHEMA VALIDATION : Kubernetes 리소스의 스키마 유효성 검사를 건너뛴다.
  • AUTO-CREATE NAMESPACE : 자동으로 Kubernetes 네임스페이스를 생성합니다.
  • PRUNE LAST :필요하지 않은 리소스를 제거한다.
  • APPLY OUT OF SYNC ONLY : 현재 상태가 아닌 경우에만 변경 사항을 적용한다.
  • RESPECT IGNORE DIFFERENCES : 배포된 애플리케이션과 git과 차이를 무시하며 적용한다.
  • SERVER-SIDE APPLY : Kubernetes API 서버에서 직접 리소스를 적용한다.

 

추가로 동기화 할 저장소 정보를 입력한다

 

동기화

[SYNC] - [SYNCHRONIZE] 동기화 진행한다.

위에서 SYNC POLICY를 수동으로 설정했기 때문에 수동으로 동기화 해야 한다.

 

확인

상세 페이지에서 SYNC STATUS를 확인하면 동기화 상태를 알 수 있고 배포된 리소스도 확인해 볼 수 있다.

 

kubectl 명령어로 배포된 pod를 확인 가능하다.

 

마치며

 

ArgoCD는 Kubernetes 환경에서 안정적이고 효율적인 CI/CD를 구현하기 위한 필수 도구입니다. 더 많은 기능과 옵션이 있지만 오늘은 ArgoCD의 기본 개념과 실습을 다루어 보았습니다. GitOps를 통한 애플리케이션 배포와 관리를 경험하고 Kubernetes 클러스터에서의 작업 효율성을 크게 향상시킬 수 있을 것입니다.

Kubernetes와 GitOps 방식이 프로덕션 환경에서 애플리케이션 배포와 관리에서 중요한 역할을 하고 있습니다. ArgoCD는 GitOps를 실현하기 위한 도구 중 하나로, Kubernetes 클러스터에서의 애플리케이션 배포를 자동화하고 관리하는 데 큰 도움이 된다.

+ Recent posts