카테고리 없음

Argo CD 간단 요약

코딩 욕심쟁이 2023. 3. 1. 22:08

개요

  • 왜 ArgoCD를 사용하는지 알아보자
  • ArgoCD동작 원리에 대해서 파악하여 보자

 

Argo CD

  • GitOps스타일의 배포를 지원하는 CD도구이다.
  • Git 저장소의 내용과 쿠버네티스 클러스터를 동기화 해주는 역할을 하는 에이전트 이다.
  • 쿠버네티스 클러스터 내부에서 Pod 형태로 배포가 된다.(ArgoCD의 단점)

 

 

Argo CD의 장점

  • GitOps의 장점을 가져갈수 있다. 쿠버네티스로 관리하는 리소스를 git에 저장함으로써 코드로 관리할수 있다.
  • IAC와 유사 

*IAC:코드형 인프라는 인프라 관리를 데이터센터의 물리적 하드웨어에서 가상화, 컨테이너, 클라우드 컴퓨팅으로 전환할수 있도록 지원한다.

*GitOps는 kubernetes Manifest파일을 Git에서 관리하고, 배포할때에도 Git에 저장된 Manifest로 클러스터에 배포하는 일련 과정들을 의미한다.

 

 

 

Argo CD의 단점 

  • 쿠버네티스가 아닌 다른 환경에서는 사용하지 못한다.
  • git서비스의 장애를 대비해야한다.(gthub서비스가 장애가 난 경우 argoCD는 새로운 업데이트 내용을 가져오지 못한다.)

 

Argo CD  구성요소

  • Argo CD Server: Kubernetes 클러스터에서 실행되며, 클러스터 내의 애플리케이션 상태를 모니터링하고 배포를 관리합니다.
  • Argo CD CLI: 로컬 컴퓨터에서 실행되며, Argo CD 서버와 상호 작용하여 애플리케이션 배포 및 관리 작업을 수행합니다.
  • Git 저장소: 애플리케이션 코드와 설정을 저장합니다. Argo CD는 이 저장소에서 변경 사항을 감지하고, 변경 사항이 발생하면 자동으로 배포를 수행합니다.

Argo CD 동작 방식

  1. Argo CD CLI를 사용하여 Git 저장소에 애플리케이션 코드와 설정을 업로드합니다.
  2. Argo CD Server는 Git 저장소를 모니터링하고, 변경 사항이 발생하면 자동으로 배포를 수행합니다.
  3. Argo CD Server는 Kubernetes 클러스터에서 실행중인 애플리케이션의 상태를 모니터링하고, Git 저장소의 코드 및 설정과 비교하여 현재 상태와 일치하지 않는 경우 자동으로 업데이트를 수행합니다.
  4. 변경 사항이 Kubernetes 클러스터에 적용되면 Argo CD Server는 애플리케이션의 상태를 모니터링하고, 이전 상태와 일치하지 않는 경우 롤백을 수행합니다.

 

정리

  • 쿠버네티스의 구성요소들을 관리하고 배포하기 위해서는 Manifest파일을 구성하여 실행해야하는데 이러한 파일들은 계속해서 변경되기때문에 지속적인 관리가 필요한데 이를 Git으로 관리하는 방식 > GitOps

 

  • GitOps를 실현시키며 쿠버네티스에 배포까지 해주는 툴 > ArgoCD

Argo CD 작동원리

ArgoCD는 원하는 애플리케이션 상태를 정의하기 위한 소스를 Git repository를 사용하는 GitOps패턴을 따른다.

Kubernetes매니페스트는 여러 방법으로 지정할 수 있다.

ArgoCD는 지정된 대상환경에서 원하는 애플리케이션 상태의 배포를 자동화한다.