• ArgoCD is a declarative, GitOps continuous delivery tool for Kubernetes.
    • ArgoCD는 Kubernetes를 위한 선언적인 GitOps CD 도구 입니다.
    • Desired State


  • GitOps 이이에 운영을 위한 유틸리티 다수기능 지원 (많이 사용하게 된 이유)
    • Multi k8s Cluster연계
    • SSO연동
    • 권한제어(RBAC)
    • Hook지원
    • 알림기능
    • 다양한 운영 명령어(kubectl, argo CLI)
    • 개발 SDK지원, REST API제공
    • Helm, kustoimze등 지원
    • .......
  • 단점
    • 쿠버네티스에서만 동작
    • 많은 지식 필요 (k8x, container, helm ...)
    • 빌드 파이프라인은 별도 구축 필요 (Argo CD는 배포만 담당)
    • 버전마다 버그가 있어 최신 버전 권장


  • ArgoCD Architecture

    • API Server

      • ArgoCD 에서 발생하는 다양한 작업 요청에 대한 API Endpoint.

        • RESTful API와 gRPC제공

    • Application Controller

      • 어플리케이선 관리 및 배포 자동화 담당 컨트롤러
      • 배포된 어플리케이션의 상태를 지속적으로 추적 및 모니터링
      • Application Controller ← → Kubernetes API
    • Repository Server

      • 어플리케이션의 형상 정보를 가지고 있는 매니페스트가 보관된 Git레포지토리를 관리하는 역할.
      • Git레포지토리와 클러스터 사이 동기화 작업을 담당
      • Repo Server ← → Git Repository
    • ApplicationSet Controller

      • ApplicationSet이라는 Custom Resource Definition(CRD)에 대한 지원을 담당하는 컨트롤러.
      • 다수의 멀티 Kubernetes 클러스터를 관리 할 수 있도록 지원
      • ApplicationSet Controller ← → A-KubernetesAPI, B-KubernetesAPI
      • ApplicationSet Controller ← → A-GitRepo, B-GitRepo
    • Dex Server

      • 싱글 사인온(SSO) 및 인증관리를 위한 서버.
      • Dex Server ← → GitHub
      • Dex Server ← → Google-OAuth





















  • No labels