ArgoCD

둥냥둥냥둥·2024년 1월 23일
0
post-thumbnail

ArgoCD (2/2)


01. ArgoCD란 무엇인가?


Argo CD는 Kubernetes를 위한 선언적 GitOps 지속적 전달 도구

그림 출처 : https://argo-cd.readthedocs.io/en/stable/

ArgoCD는 Kubernetes 환경에서 CI/CD를 구현하기 위한 오픈 소스 도구 중 하나이다. ArgoCD는 GitOps 원칙을 기반으로 하여 애플리케이션 및 인프라스트럭처의 배포 및 관리를 단순화하는 데 중점을 두고 있다.

GitOps는 애플리케이션의 상태 및 구성을 Git 리포지토리에 저장하고, 이를 통해 애플리케이션을 배포하고 관리하는 방식을 말한다. ArgoCD는 이 GitOps 접근 방식을 통해 클러스터에 배포된 애플리케이션의 상태를 지속적으로 추적하고, Git 리포지토리의 변경 사항을 감지하여 클러스터를 최신 상태로 유지한다.

ArgoCD는 다양한 CI/CD 도구와 통합이 가능하며, YAML 파일을 사용하여 애플리케이션의 배포 및 관리를 정의한다. 이를 통해 개발자들은 손쉽게 애플리케이션의 라이프사이클을 관리하고, 여러 환경에서 일관된 배포를 보장할 수 있다.


02. 왜 ArgoCD 일까?

ArgoCD를 선택한 이유는 몇가지가 있다. 그 중 내가 찾아본 것을 종합적으로 아래와 같다.

1. GitOps 지원

ArgoCD는 GitOps 원칙을 기반으로 하여 애플리케이션의 상태와 구성을 Git 리포지토리에 저장하고, Git의 변경 사항을 통해 배포 및 관리하는 방식을 제공한다. 이는 애플리케이션의 상태 추적과 배포 프로세스를 단순화하여 일관된 환경을 유지할 수 있게 한다.


2. Kubernetes 특화

ArgoCD는 Kubernetes에 특화된 CI/CD 도구로서, Kubernetes 클러스터에서의 애플리케이션 배포 및 관리에 최적화되어 있다. Kubernetes 자원 및 객체를 쉽게 관리할 수 있도록 지원하며, 네이티브 Kubernetes 자원 정의(YAML 파일)를 사용한다.


3. 유연성과 확장성

ArgoCD는 다양한 CI/CD 도구와 통합이 가능하며, 다양한 환경에서의 사용에 유연하게 대응할 수 있다. 또한, 많은 환경에서의 배포에 대한 확장성을 제공한다.


4. 웹 기반 대시보드

ArgoCD는 사용자가 쉽게 클러스터와 애플리케이션의 상태를 시각화할 수 있는 웹 기반 대시보드를 제공한다. 이를 통해 개발자 및 운영팀은 시각적으로 애플리케이션의 상태를 파악하고 모니터링할 수 있다.


03. 라이벌 비교


기능/도구ArGoCDFluxJenkins XSpinnakerGitLab CI/CDDrone
GitOps 지원OOOOOO
Kubernetes 특화OOOOOO
웹 기반 대시보드OOOOOO
Helm 지원OOOOOO
다양한 클라우드XXXOOX
프로그레시브 롤아웃O (Argo Rollouts)OXXXX
사용자 경험우수양호양호양호양호양호
커뮤니티 지원활발활발활발활발활발활발

Jenkins X : https://jenkins-x.io/
Spinnaker : https://spinnaker.io/
ArgoCD : https://argo-cd.readthedocs.io/en/stable/
Flux : https://fluxcd.io/


04. 옵션


명령어설명
argocd loginArgoCD 클러스터에 로그인
argocd app list현재 클러스터에 배포된 애플리케이션 목록을 표시
argocd app get특정 애플리케이션의 상세 정보를 표시
argocd app sync애플리케이션을 수동으로 동기화하여 설정과 클러스터를 일치
argocd app delete애플리케이션을 삭제
argocd proj list현재 클러스터에 정의된 프로젝트 목록을 표시
argocd repo listGit 리포지토리 목록을 표시
argocd diff애플리케이션과 Git 리포지토리 간의 차이를 표시
argocd rollback이전 배포 상태로 롤백
argocd logout현재 로그인한 사용자를 로그아웃

05. 참고 자료


https://blog.devops.dev/ci-cd-on-kubernetes-using-argo-cd-7f438efb0a10

https://www.youtube.com/watch?v=9_P7dANzXXk

profile
Java 먹자

0개의 댓글