시작하기

시작하기 (Getting Started)

ApplicationSet 컨트롤러를 설치하는 방법을 안내해요. Argo CD v2.3부터는 컨트롤러가 Argo CD에 통합돼 있어 별도 설치가 필요 없고, 그 이전 버전에서는 매니페스트로 직접 설치할 수 있어요. 고가용성(HA) 모드와 업그레이드 후 안전망 설정도 함께 다뤄요.

출처: 문서

본문

이 가이드는 Argo CD와 그 기본 개념에 익숙하다고 가정해요. 자세한 내용은 Argo CD 문서를 참고하세요.

요구 사항 (Requirements)

  • 설치된 kubectl 명령줄 도구
  • kubeconfig 파일(기본 위치는 ~/.kube/config)

설치 (Installation)

ApplicationSet 컨트롤러를 설치하는 방법은 몇 가지가 있어요.

A) Argo CD의 일부로 ApplicationSet 설치

Argo CD v2.3부터 ApplicationSet 컨트롤러는 Argo CD에 번들로 포함돼요. 이제 Argo CD와 별도로 ApplicationSet 컨트롤러를 설치할 필요가 없어요.

자세한 내용은 Argo CD Getting Started 지침을 따르세요.

B) 기존 Argo CD 설치에 ApplicationSet 설치 (Argo CD v2.3 이전)

참고 — 이 지침은 Argo CD v2.3.0 이전 버전에만 적용돼요.

ApplicationSet 컨트롤러는 반드시 대상으로 하는 Argo CD와 같은 네임스페이스에 설치되어야 해요.

Argo CD가 argocd 네임스페이스에 설치되어 있다고 가정하고 다음 명령을 실행하세요.

kubectl apply -n argocd --server-side --force-conflicts -f https://raw.githubusercontent.com/argoproj/applicationset/v0.4.0/manifests/install.yaml

설치가 끝나면 ApplicationSet 컨트롤러는 추가 설정이 필요 없어요.

manifests/install.yaml 파일은 ApplicationSet 컨트롤러 설치에 필요한 Kubernetes 매니페스트를 담고 있어요.

  • ApplicationSet 리소스용 CustomResourceDefinition
  • argocd-applicationset-controller용 Deployment
  • Argo CD 리소스에 접근하기 위해 ApplicationSet 컨트롤러가 사용하는 ServiceAccount
  • ServiceAccount에 필요한 리소스에 대한 RBAC 접근을 부여하는 Role
  • ServiceAccount와 Role을 바인딩하는 RoleBinding

고가용성(HA) 모드 활성화 (Enabling high availability mode)

고가용성을 활성화하려면 argocd-applicationset-controller 컨테이너에 --enable-leader-election=true 명령을 설정하고 replicas를 늘려야 해요.

manifests/install.yaml에서 다음 변경을 수행하세요.

    spec:
      containers:
      - command:
        - entrypoint.sh
        - argocd-applicationset-controller
        - --enable-leader-election=true

선택 사항: 업그레이드 후 추가 안전장치 (Optional: Additional Post-Upgrade Safeguards)

업그레이드 직후 예상치 못한 동작에 대한 추가 보안을 위해 install.yaml의 ApplicationSet 리소스에 추가할 수 있는 파라미터에 대한 정보는 리소스 수정 제어 페이지를 참고하세요.

예를 들어 업그레이드된 ApplicationSet 컨트롤러가 아무 변경도 하지 못하게 임시로 막으려면 다음을 할 수 있어요.

  • dry-run 활성화
  • create-only 정책 사용
  • ApplicationSet에 preserveResourcesOnDeletion 활성화
  • ApplicationSet 템플릿에서 자동 sync를 임시로 비활성화

이 파라미터들은 새 버전의 ApplicationSet 컨트롤러 동작을 환경에서 관찰·제어할 수 있게 해줘요(ApplicationSet 로그 파일 참고). 테스트가 끝나면 임시 변경을 잊지 말고 제거하세요!

하지만 앞서 말했듯이 이 단계들은 엄밀히 필수는 아니에요. ApplicationSet 컨트롤러 업그레이드는 최소 침습적인(minimally invasive) 과정이어야 하며, 이는 추가 안전을 위한 선택적 예방 조치일 뿐이에요.

다음 단계 (Next Steps)

ApplicationSet 컨트롤러가 실행 중이면 Use Cases로 이동해 지원되는 시나리오를 알아보거나, 바로 Generators로 이동해 예시 ApplicationSet 리소스를 확인하세요.

더 알아보기 (Learn more)