🌱 인프런/⚓ 쿠버네티스 어나더 클래스 (지상편)

(15) ArgoCD 아키텍처, Argo Apps 설치 및 배포 해보기

mallin 2025. 6. 24. 02:22

 쿠버네티스 어나더 클래스 (지상편) - Spring 1, 2 을 듣고 작성하는 복습 블로그 입니다.

 

1. ArgoCD 아키텍처

argocd

  • k8s 전용 배포 툴 (with git)

image updater

  • 컨테이너 이미지 변경 감지 (추가기능)

rollouts

  • 고급 배포 지원

events

  • 이벤트 버스 아키텍쳐 도구 (카프카)
  • 메인 통로 역할

workflow

  • airflow 나 kubeflow 같은 매니지먼트 도구
  • 실행 순서도

  • kube-apiserver 가 트래픽을 받아서 관련있는 곳들에 전달
  • Server : API Server 및 Dashboard 역할, Port를 통해 UI 로 접근하거나 argocd CLI 로 접근
  • Repo Server : Git 연결 및 배포할 yaml 매니패스트 생성
  • Application Controller : k8s 리소스 모니터링, Git 과 비교

 

  • Kube API : K8S 배포
  • Notification : 이벤트 트리거
  • Dex : 외부 인증 관리
  • Redis : Kube API 와 Git에서 요청을 줄이기 위한 캐시 역할
  • Application Set Controller : 멀티 클러스터를 위한 App 패키징 관리

 

2. Argo Apps 설치 및 배포 (kubectl, helm)

  • Artifact HUB 에서 HELM 패키지로 설치할 수 있다
  • 복사 및 values 추가
  1. GitRepository 에 내가 배포하고자 하는 yaml 파일들이 있다
    1. 각 GitRepository 는 서로 분리한다
    2. 접근 유저별 권한 관리를 하고 불필요한 코드 다운을 방지하기 위해서
  2. Application 을 만든다
    1. default 프로젝트에 소속되는에 이 프로젝트는 어플리케이션들을 그룹핑하는 용도
  3. Application 세팅
    1. Source : 연동할 Git에 대한 정보를 입력
    2. Destination : 배포할 kubernetes 의 클러스터 정보
    3. General : 기본 정보나 배포 시에 줄 옵션들
      1. Project Name : 그룹 이름
      2. Application Name : 배포 App 이름
      3. Sync Policy : 리소스에 대한 변경 감지 시 어떻게 할지 (Manual / Auto)
      4. Sync Option : 배포 상세 옵션
      5. Prune Policy : 리소스 삭제시 정책
  4. Desired Manifast : Git에 있는 yaml 파일을 다운받은 Manifest
  5. Live Manifest : Kubernetes 에 있는 리소스를 조회한 Manifest

 

이미지 출처 URL : https://inf.run/k7mF