1.3. Argo Rollouts 아키텍처 개요
Argo Rollouts 지원은 Red Hat OpenShift GitOps Operator를 설치하고 RolloutManager
CR(사용자 정의 리소스) 인스턴스를 구성하여 클러스터에서 활성화됩니다.
RolloutManager
CR이 생성되면 Red Hat OpenShift GitOps Operator가 Argo Rollouts를 동일한 네임스페이스에 설치합니다. 이 단계에는 Argo Rollouts 컨트롤러 설치와 CR, 역할, 역할 바인딩 및 구성 데이터와 같은 Argo 롤아웃을 처리하는 데 필요한 리소스가 포함됩니다.
Argo Rollouts 컨트롤러는 다음 두 가지 모드로 설치할 수 있습니다.
- 클러스터 범위 모드 (기본값): 컨트롤러에서 클러스터 내의 모든 네임스페이스의 리소스를 감독합니다.
- 네임스페이스 범위 모드: 컨트롤러는 Argo Rollouts가 배포된 네임스페이스 내의 리소스를 모니터링합니다.
Argo 롤아웃의 아키텍처는 구성 요소 및 리소스로 구성됩니다. 구성 요소는 리소스를 관리하는 데 사용됩니다. 예를 들어 AnalysisRun 컨트롤러는 AnalysisRun
CR을 관리합니다.
Argo Rollouts에는 새 애플리케이션 버전이 배포되었는지 확인하기 위해 분석 지표를 수집하는 몇 가지 메커니즘이 포함되어 있습니다.
-
Prometheus metrics:
AnalysisTemplate
CR은 하나 이상의 메트릭의 성공 또는 실패를 평가하기 위해 Prometheus 인스턴스에 연결하도록 구성되어 있습니다. -
Kubernetes 작업 메트릭: Argo 롤아웃은 Kubernetes
작업
리소스를 지원하여 리소스 지표에서 분석을 실행합니다. Kubernetes 작업의 성공적인 실행을 기반으로 애플리케이션을 성공적으로 배포할 수 있습니다.
1.3.1. Argo 롤아웃 구성 요소
Argo Rollouts는 사용자가 OpenShift Container Platform에서 점진적인 제공을 실습할 수 있는 여러 구성 요소로 구성됩니다.
이름 | 설명 |
---|---|
Argo Rollouts 컨트롤러 |
Argo Rollouts 컨트롤러는 표준 |
AnalysisRun 컨트롤러 |
|
|
|
|
서비스 컨트롤러는 |
Argo Rollouts CLI 및 UI |
Argo Rollouts는 Argo Rollouts CLI라는 |
1.3.2. Argo 롤아웃 리소스
Argo Rollout 구성 요소는 여러 리소스를 관리하여 점진적인 제공을 활성화합니다.
-
롤아웃별 리소스: 예를 들어
롤아웃
,AnalysisRun
또는Experiment
. -
Kubernetes 네트워킹 리소스: 네트워크 트래픽 형성을 위한
서비스
,인그레스
또는경로
등의 경우입니다. Argo Rollouts는 트래픽 관리라고 하는 이러한 리소스와 통합됩니다.
이러한 리소스는 Rollout
CR을 통해 애플리케이션 배포를 사용자 정의하는 데 필요합니다.
Argo Rollouts는 다음 작업을 지원합니다.
- 카나리아 배포를 위한 백분율 기반 트래픽을 라우팅합니다.
-
Service
및Ingress
리소스를 사용하여 들어오는 사용자 트래픽을 올바른 애플리케이션 버전으로 전달합니다. - 여러 메커니즘을 사용하여 분석 지표를 수집하여 새 버전의 애플리케이션의 배포를 검증합니다.
이름 | 설명 |
---|---|
|
이 CR을 사용하면 카나리아 또는 blue-green 배포 전략을 사용하여 애플리케이션을 배포할 수 있습니다. 기본 제공 Kubernetes |
|
이 CR은 분석을 수행하고 분석 결과를 집계하여 사용자가 애플리케이션을 성공적으로 배포하도록 안내하는 데 사용됩니다. |
|
|
|
|
| Argo Rollouts는 서비스 및 Ingress 컨트롤러를 사용하여 서비스와 인그레스로 트래픽 라우팅을 기본적으로 지원합니다. |
|
OpenShift |