쿠버네티스 어나더 클래스 - Sprint 1,2
사내에서 ArgoCD Image Updater를 구경해볼 기회가 있어서 정리해봅니다.
이해를 위해 가볍게 정리해보겠습니다.
쿠버네티스 아너더 클래스 - Sprint 1-2 강의를 참조했습니다.
쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)| 일프로 - 인프런
현재 평점 4.9점 수강생 2,425명인 강의를 만나보세요. ⚓쿠버네티스(Kuberentes, Containerd, Docker Hub, Helm, Jenkins, Kustomize, ArgoCD) 🙇♀️아직 망설이시나요? 🙋♂️저만 믿고 따라오세요! 이론과 실
www.inflearn.com
흐름도

목적
CI도구 (Jenkins)가 배포하는 방식
CI 서버(Jenkins 등)가 빌드를 마친 후,
배포용 Git 리포지토리에 접속해 이미지 태그(image: v1.1.0)를 직접 수정하고 커밋하는 방식입니다
Git 이력이 남고, 승인된 사람과 도구를 제어해서 보안상 명확합니다.
하지만 CI 스크립트가 복잡해지고, 커밋이력이 자주 변경되는 단점이 있습니다.
ArgoCD Git-Sync 방식 (표준 GitOps)
CI 도구가 배포용 Git 저장소의 코드를 수정하여 배포를 유도하는 방식입니다. 이미지 중간의 ArgoCD 배포에 해당합니다
CI 서버가 빌드 후 배포용 Git Repo의 YAML 파일(이미지 태그)을 직접 수정(Commit/Push)합니다.
이를 감지한 ArgoCD가 클러스터를 동기화합니다.
GitOps에 어울리게 Git로그에 정확한 이력관리가 가능합니다.
다만, 커밋이 복잡해지는 것과 CI(Jenkins서버)서버가 Git 저장소의 권한(SSH/Token)을 별도로 관리해야합니다.
ArgoCD Image Updater 방식 (최신 자동화)
저장소(Nexus)를 실시간 감시하여 자동으로 업데이트하는 방식입니다.
이미지 상단의 ArgoCD Image Updater에 해당합니다
Image Updater가 Nexus API를 주기적으로 체크하다가 새로운 태그가 올라오면 이를 감지하고 ArgoCD에게 알립니다.
ArgoCD는 Git 수정 없이도 메모리 상에서 버전을 올려 배포합니다
개발자나 CI서버가 Git을 만지지 않아도 되는 효율과 CI/CD가 명확하게 분리됩니다.
하지만, Git과의 불일치가 발생할 수 있고 추가적인 컴포넌트로 관리포인트가 증가합니다.
https://artifacthub.io/packages/helm/argo/argocd-image-updater
argocd-image-updater 1.0.4 · argoproj/argo
A Helm chart for Argo CD Image Updater, a tool to automatically update the container images of Kubernetes workloads which are managed by Argo CD
artifacthub.io
방식
Git Write-Back 모드 (가장 일반적 / 실무 표준)
Image Updater가 Git을 수정하는 방식 (GitOps 유지)
Registry (새 이미지)
↓
Argo CD Image Updater
↓
Git repo (kustomization.yaml 수정 & 커밋)
↓
Argo CD Sync
↓
Cluster 배포
- Image Updater는 Argo CD Application을 기준으로
- 어떤 Git repo
- 어떤 path
- 어떤 kustomization.yaml
- 을 수정할지 결정합니다.
- 이미지 태그 변경은 Git에 커밋으로 남습니다
- Argo CD는 평소와 동일하게 Git을 Sync 합니다
GitOps 원칙을 유지할 수 있고 배포이력이 전부 남는 장점이 있습니다. 장애시 git revert가 가능합니다.
하지만 Image Updater에 Git권한을 주어야하고 자동 커밋이 잦아질 수 있습니다.
Argo CD Parameter Override 모드 (Git 미수정)
Git은 그대로 두고, Argo CD Application의 파라미터만 동적으로 변경
Registry (새 이미지)
↓
Argo CD Image Updater
↓
Argo CD Application (in-memory override)
↓
Cluster 배포
- Git에는 아무 변경도 없음
- Argo CD Application의 이미지 값만 임시로 변경
- Argo CD 재시작 또는 Application 재동기화 시 원복 가능
-> PoC, dev에서만 제한적으로 사용되어야합니다.
정리
Argo CD Image Updater는 Deployment나 Kustomization을 직접 보지 않습니다.
-> 대상 : Argo CD Application
Image Updater의 모든 판단 기준은:
• Application 이름
• Application이 참조하는 Git repo
• spec.source.path
• Application에 연결된 이미지 설정
Image Updater
└─ Argo CD Application
└─ Git repo + path
└─ kustomization.yaml
[Image Updater Pod]
|
| (SSH Key / Token)
|
[ Kubernetes Secret ]
|
| (git clone / push)
|
[ Git Server (GitLab / Bitbucket) ]
참고자료
https://argocd-image-updater.readthedocs.io/en/stable/basics/update-strategies/
'devops > cicd' 카테고리의 다른 글
| [CI/CD] 8주차 - Hashicorp Vault/VSO on K8S (1) | 2025.12.06 |
|---|---|
| [CI/CD] 7주차 - Vault (2) (1) | 2025.12.03 |
| [CI/CD] 7주차 - Vault (1) (0) | 2025.11.29 |
| [CI/CD] 6주차 - Argo CD 3/3 (0) | 2025.11.23 |
| keycloak - Oauth - OIDC (0) | 2025.11.16 |