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 클러스터에서의 애플리케이션 배포를 자동화하고 관리하는 데 큰 도움이 된다.
'DevOps' 카테고리의 다른 글
Kubernetes 구축하기 (0) | 2024.05.24 |
---|---|
Kubernetes 환경 자원 모니터링을 위한 Prometheus와 Grafana (0) | 2024.05.23 |
Kubernetes에서 여러 노드의 디스크를 효율적으로 사용하는 방법 (0) | 2024.05.23 |
AWS의 EKS 시작하기: 기초부터 클러스터 구축까지 (0) | 2024.04.27 |