카테고리 없음
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 동작 방식
- Argo CD CLI를 사용하여 Git 저장소에 애플리케이션 코드와 설정을 업로드합니다.
- Argo CD Server는 Git 저장소를 모니터링하고, 변경 사항이 발생하면 자동으로 배포를 수행합니다.
- Argo CD Server는 Kubernetes 클러스터에서 실행중인 애플리케이션의 상태를 모니터링하고, Git 저장소의 코드 및 설정과 비교하여 현재 상태와 일치하지 않는 경우 자동으로 업데이트를 수행합니다.
- 변경 사항이 Kubernetes 클러스터에 적용되면 Argo CD Server는 애플리케이션의 상태를 모니터링하고, 이전 상태와 일치하지 않는 경우 롤백을 수행합니다.
정리
- 쿠버네티스의 구성요소들을 관리하고 배포하기 위해서는 Manifest파일을 구성하여 실행해야하는데 이러한 파일들은 계속해서 변경되기때문에 지속적인 관리가 필요한데 이를 Git으로 관리하는 방식 > GitOps
- GitOps를 실현시키며 쿠버네티스에 배포까지 해주는 툴 > ArgoCD
Argo CD 작동원리
ArgoCD는 원하는 애플리케이션 상태를 정의하기 위한 소스를 Git repository를 사용하는 GitOps패턴을 따른다.
Kubernetes매니페스트는 여러 방법으로 지정할 수 있다.
ArgoCD는 지정된 대상환경에서 원하는 애플리케이션 상태의 배포를 자동화한다.