쿠버네티스를 좀 더 깔끔하게 운영하고 싶다면, Argo CD는 정말 괜찮은 선택입니다. 이 글에서는 Argo CD를 설치하고, Git 저장소를 연동해 애플리케이션을 배포하는 전체 흐름을 적어볼까 해요.
Argo CD 같은 CD 도구 없이 운영 중이었는데,
👉 운영 환경과 Git 저장소 간 상태 불일치,
👉 로컬에서 수동으로 배포 스크립트를 실행해야 하는 구조,
👉 배포에 시간이 오래 걸리고 이력 추적도 어려운 상황이 반복됐어요.
이런 구조에서는 안정적인 운영도, 빠른 배포도 어렵다는 걸 계속 체감했고, 결국 Argo CD 도입을 고민하게 됐습니다.
GitOps라는 개념이 익숙하지 않다면 간단하게 설명하자면, 애플리케이션의 배포 설정을 Git에 모두 저장하고, Git을 '단일 진실 소스(Single Source of Truth)'로 삼아 배포와 동기화를 관리하는 방식이에요. 즉, Git에 Push만 하면 Argo CD가 알아서 클러스터에 배포해주는 거죠. 이게 진짜 편하고 안전해요.
현재 많은 팀이 GitHub Actions를 통해 CI/CD를 구성하고 있지만, CD 영역에서 실제 배포의 신뢰성과 안정성을 확보하기 위해서는 별도의 CD 도구 도입이 중요합니다. 특히 Helm upgrade를 CLI로 수동으로 관리하거나, 롤백 및 이력관리가 어려운 경우에는 Argo CD 같은 도구가 강력한 대안이 될 수 있다고 생각해요.
사전 준비 사항
시작하기 전에 몇 가지 준비물이 필요해요:
- 쿠버네티스 클러스터 (Minikube, EKS, GKE 등 아무거나 가능)
- kubectl, helm, git CLI 툴 설치
- 깃 저장소 하나 (퍼블릭이든 프라이빗이든 상관없어요)
로컬 실습을 원한다면 Minikube를 추천합니다. 설치가 간단하고 테스트 환경으로 적합해요. Helm은 템플릿 기반 배포 도구인데, Argo CD와 함께 쓰면 반복되는 작업이 매우 줄어듭니다.
Argo CD 설치
2-1. YAML 방식으로 간단하게 설치하기
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
2-2. Helm으로 설치하고 싶다면?
조금 더 커스터마이징을 하고 싶거나, 운영 환경에서 유지보수를 고려한다면 Helm으로 설치하는 걸 추천합니다.
helm repo add argo https://argoproj.github.io/argo-helm
helm repo update
helm install argocd argo/argo-cd -n argocd --create-namespace
만약 Helm chart를 로컬로 다운로드해 수정하고 싶다면:
helm pull argo/argo-cd --untar
cd argo-cd
vi values.yaml # 필요한 옵션 수정 후
helm upgrade --install argocd . -n argocd -f values.yaml
Ingress 설정 시, server.insecure: true 와 함께 healthcheck 관련 annotation을 설정하지 않으면 307 오류로 접속이 안 되는 경우가 있으니 유의하세요.
Argo CD 웹 UI 접속해보기
3-1. 포트포워딩으로 브라우저에서 보기
kubectl port-forward svc/argocd-server -n argocd 8080:443
브라우저에서 https://localhost:8080으로 접속하면 로그인 창이 뜹니다.

3-2. 초기 비밀번호 확인
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
ID는 admin, 비밀번호는 위 명령어 결과입니다. 보안을 위해 초기 비밀번호는 CLI 또는 UI에서 바로 변경하세요.
argocd login localhost:8080
argocd account update-password
Argo CD CLI 설치하고 로그인하기
CLI는 자동화, 배포 스크립트, 상태 확인에 매우 유용합니다.
brew install argocd # macOS
scoop install argocd # Windows
로그인 :
argocd login localhost:8080 --insecure
Git 저장소 연동
5-1. Web UI에서 등록
- Settings → Repositories
- Connect Repo 클릭 후 Git URL 입력
- 인증 방법 선택 (HTTPS or SSH)

5-2. CLI 사용시
argocd repo add https://github.com/사용자명/저장소명.git \
--username 사용자명 \
--password 비밀번호
Application 등록해보기
6-1. Web UI 이용
- Applications → New App
- App 이름, Repository URL, Branch, Path, Namespace 입력
- Auto-Sync 활성화 여부 설정

6-2. YAML로 CRD 생성
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: testapp
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/사용자명/저장소명.git
targetRevision: HEAD
path: app
destination:
server: https://kubernetes.default.svc
namespace: test
syncPolicy:
syncOptions:
- CreateNamespace=true
kubectl apply -f application.yaml
동기화(sync)하고 배포 확인
- Web UI에서 SYNC 버튼을 클릭해 수동 동기화
- CLI에서 :
argocd app sync testapp
argocd app get testapp
배포 확인:
kubectl get all -n test
참고 링크
'DevOps & Infra > CI CD' 카테고리의 다른 글
| [CI/CD] 이미지 업로드 자동화 개선 로컬 스크립트 → Kubernetes Job 기반 방식으로 전환 (0) | 2025.04.10 |
|---|---|
| [Argo CD] Argo CD에 Redis는 왜 있을까? (0) | 2025.04.09 |
| [Argo CD] Argo cd에서 Redis NOAUTH 오류 발생 시 해결 방법 정리 (0) | 2025.04.08 |
| [CI/CD] Jenkins ,NCP, Github, Docker, Spring Boot, Slack로 CI/CD 구축 (0) | 2024.03.13 |
