왜 ArgoCD를 사용하는가?
배포를 좀 더 쉽게 만들어줌
Blue/green, Canary 배포 기능 지원 (Argo 주요 사용 이유)
그래서 요즘은 Jenkins로 빌드까지만 하고 배포는 ArgoCD를 많이 사용하는 추세이다
근데 그렇다고 해서 Level3로도 내 App을 배포하는데 문제가 없다면, 굳이 다음 단계로 넘어갈 필요 없음
(ArgoCD도 유지보수 부담이 생긴다)
=> 이번 강의를 잘 들으면 그에 대한 판단도 할 수 있을 것!!
Rollouts
편의기능은 나중에 실력이 올라갈 수록 내 눈에 보이지 않는 동작들을 파악해야하는 불편함도 있다.
Rollouts의 배포 전략은 우리가 직접 만드는 것보다 훨신 좋음
실습과 정리 강조
강사님은 인터넷만 보지 말고 직접 설치해보는 편
그리고 한번 해본 것은 시간이 걸리더라도 잘 정리해놓기
프로젝트에서 명확한 사실만 말하게 되면서 신뢰가 올라가고 월급도 올라감.
강의도 만들 수 있게 되었다!
ArgoCD 설명
ArgoCD 솔루션
ArgoCD
- 반드시 변경 관리 저장소 Git 사용
Image Updater
- 컨테이너 이미지 변경 관리
Rollouts
- 고급 배포 지원
Events
- 이벤트 버스 아키텍처 도구(Kafka와 같은 역할)
- 시스템들 간의 이벤트를 주고 받는 메인 통로 역할
Workflow
- Airflow나 Cubeflow같은 역할
- 이벤트의 내부 값에 따른 작업 실 순서도
ArgoCD 구조
Server : Nodeport처럼 ArgoCD에 UI로 접속, argocd 툴로 CLI 보내기 가능
Application Controller: Git과 내용이 다르면, Git의 내용으로 배포 진행
Kube API : kubernetes로 리소스 생성 명령어 날림
Notification: ArgoCD에서 발생하는 이벤트를 외부로 트리거
Dex: IAM 솔루션이랑 연결해서 외부 인증 관리 (Single Sign-On)
ApplicationSet Controller: Helm이나 Kustomize처럼 템플릿을 제공해줌
실습
사전에 작업한 내용 (helm이 설치된 서버에서 )
- ArtifactHUB의 helm charts를 이용해 argo-cd, argo-image-updater, argo-rollouts 구성요소 설치
- helm package를 Github로 업로드
내용 확인
ls argo*
ArgoCD 설치
ArgoCD 접속 및 초기설정
https://192.168.56.30:30002/login
# values-dev.yaml
server:
service:
type: NodePort
nodePortHttps: 30002
# Jenkins 초기 비밀번호 확인
kubectl get -n argo secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d
User info > UPDATE PASSWORD에서 변경 가능
ArgoCD Application 생성하기
▲ 이 Path의 파일들을 모두 배포 대상으로 간주함
▲ url: kube API 서버로 가는 도메인 이름 (ArgoCD가 설치된 클러스터에 속한 API 서버)
Helm 배포하기
Application Name : api-tester-2232
Project Name : default
SYNC POLICY : Manual
Repository URL : https://github.com/<Github-Username>/kubernetes-anotherclass-sprint2.git
Revision : main
Path : 2232/deploy/helm/api-tester
Cluster URL : https://kubernetes.default.svc
Namespace : anotherclass-223
VALUES FILES : values-dev.yaml [입력 후 엔터]
[ENABLE_AUTO-SYNC]
'인프런 복습 - 쿠버네티스 어나더 클래스' 카테고리의 다른 글
[Sprint2] ArgoCD Rollouts 사용하기 (2) | 2025.06.04 |
---|---|
[Sprint2] ArgoCD Image Updater 이용하기 (0) | 2025.06.03 |
[Sprint2] 배포 파이프라인 구축 후 마주하게 되는 고민들 (1) | 2025.05.31 |
[Sprint2] Helm 배포하기(다양한 배포 환경) (0) | 2025.05.31 |
[Sprint2] Helm vs Kustomize + Kustomize 실습(다양한 배포환경) (0) | 2025.05.30 |