멀티 클러스터 #6 ApplicationSet

codelab·2023년 10월 22일
0

Multi Cloud

목록 보기
10/11

ArgoCD를 사용하여 여러 Kubernetes 클러스터에 앱 배포

ArgoCD ApplicationSet 을 사용하면 여러 Kubernetes 클러스터에 동일한 앱을 쉽게 배포할 수 있습니다. ApplicationSet는 ArgoCD Helm 차트에 의해 자동으로 설치됩니다. ApplicationSet은 정의된 기준에 따라 여러 ArgoCD Applications를 생성합니다. 여러 유형의 기준을 사용할 수 있는데 그 중 하나가 ArgoCD가 관리하는 Kubernetes 클러스터 목록입니다.

아래 스크립트를 실행하면
git 레포지토리에 미리 올려둔 yaml 파일이 우리가 관리하는 3개의 클러스터에 동일하게 배포됩니다. {{name}} 변수를 사용하여 각각의 클러스터 이름을 접두어로 설정함으로써 식별을 용이하게 하였습니다.

cat <<EOT> application-set-nginx.yaml
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: nginx-app
  namespace: argocd
spec:
  generators:
  - clusters: {}
  template:
    metadata:
      name: '{{name}}-nginx-app'
    spec:
      project: default
      source:
        repoURL: https://github.com/codelab-kr/nginx-app.git
        targetRevision: HEAD
        path: yaml
      destination:
        server: '{{server}}'
        namespace: demo 
      syncPolicy: 
        automated:
          selfHeal: true
        syncOptions:
          - CreateNamespace=true
EOT
k apply -f application-set-nginx.yaml

ArgoCD 대시보드로 돌아가봅시다. ArgoCD가 관리하는 클러스터는 관리 클러스터 1개와 워크로드 클러스터 2개 총 3개입니다.

스크립트가 잘 반영되었는지 확인합니다. 3개의 ArgoCD 응용 프로그램이 생성되고 자동으로 동기화되었습니다.  nginx-app이 현재 모든 클러스터에서 실행되고 있네요.

profile
Think about a better architecture

0개의 댓글