ArgoCD Image Updater를 사용하는 이유
배포를 하게 되는 경우
1. 리소스 스펙을 변경해야 하는 경우 => 수동 작업 필요
(deployment에서 배포 전략을 바꾼다거나 수동으로 scale up을 해야할 때)
Devops 엔지니어는 yaml 파일을 수정해서 Git에 commit하고 배포 잡을 실행한다 -> k8s에 반영됨
2. App 버전 업그레이드로 컨테이너 이미지를 변경해주어야 할 때 => 자동화 가능
개발자가 소스 빌드 잡을 실행하면, 최신 소스를 가지고 자료 파일이 만들어지고 이어서 컨테이너 빌드를 하고 도커 허브에 이미지를 업로드 해준다. -> 배포 실행
(원래라면 Devops 엔지니어가 yaml 파일에서 이미지 태그를 수정해야 하지만 helm을 쓰면 배포 명령에 동적으로 태그 값을 줄 수 있음)
그런데, 여기서 Jenkins의 빌드가 먼저 실행되고 ArgoCD의 배포가 실행되게 하려면
1) Jenkins에서 yaml 파일 수정 후 Git에 업데이트 되는 스크립트 작성(복잡)
2) helm --wait 옵션 사용 (더 깔끔하다)
ArgoCD를 사용하면 1번 방식은 편해졌지만, 2번 방식은 불편해짐
이를 해결하기 위한 것이 ArgoCD Image Updater
Image Updater가 하는 일
Docker Hub를 모니터링
이미지 업데이트가 감지되면 ArgoCD에 배포 명령
(helm, kustomize에서만 사용이 가능하다. 내부적으로 --set image.tag=1.0.0-202506.031850 이런 옵션을 사용하기 때문)
실습
https://cafe.naver.com/f-e/cafes/30725715/articles/121?menuid=13&referrerAllArticles=false
이전 강의에 이어서 실습
도메인 이름 확인 방법
▲ 80, 443 포트 확인
▲ Processing results가 2분 단위로 업데이트 됨 (이미지 변경 여부 체크)
이미지 업데이터로 자동 배포 설정하기
2232
Docker build 잡 생성하기
문제 1) image_skippped 되어서 Auto sync 되지 않음
2232의 values-dev.yaml 파일을 lsm0/api-tester로 수정하고 재빌드함
Updater는 이미지 "이름"이 정확히 일치할 때만 tag를 업데이트하기 때문!!
태그가 잘 반영됨
'인프런 복습 - 쿠버네티스 어나더 클래스' 카테고리의 다른 글
[Sprint2] ArgoCD 설치과정 총정리 (1) | 2025.06.05 |
---|---|
[Sprint2] ArgoCD Rollouts 사용하기 (2) | 2025.06.04 |
[Sprint2] ArgoCD 설치 및 Application 생성해보기 (1) | 2025.06.02 |
[Sprint2] 배포 파이프라인 구축 후 마주하게 되는 고민들 (1) | 2025.05.31 |
[Sprint2] Helm 배포하기(다양한 배포 환경) (0) | 2025.05.31 |