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에서 점진적인 제공을 실습할 수 있는 여러 구성 요소로 구성됩니다.

표 1.1. Argo 롤아웃 구성 요소
이름설명

Argo Rollouts 컨트롤러

Argo Rollouts 컨트롤러는 표준 배포 리소스의 대안이며 이와 공존합니다. 이 컨트롤러는 Argo 롤아웃 리소스의 변경에만 응답하고 롤아웃 CR을 관리합니다. Argo Rollouts 컨트롤러는 표준 배포 리소스를 수정하지 않습니다.

AnalysisRun 컨트롤러

AnalysisRun 컨트롤러는 AnalysisRun 및 AnalysisTemplate CR에 대한 분석을 관리하고 수행합니다. 롤아웃을 지표 공급자에 연결하고 애플리케이션에 배포 업데이트가 성공했는지 여부를 결정하는 메트릭 임계값을 정의합니다.

실험 컨트롤러

Experiment 컨트롤러는 수명이 짧은 복제본 세트에서 분석을 실행하고 실험 사용자 정의 리소스를 관리합니다. 카나리아 배포 전략 필드에 실험 단계를 지정하여 컨트롤러를 롤아웃 리소스와 통합할 수도 있습니다.

서비스Ingress 컨트롤러

서비스 컨트롤러는 서비스 리소스를 관리하고 Ingress 컨트롤러는 Argo Rollouts에서 수정한 Ingress 리소스를 관리합니다. 이러한 컨트롤러는 트래픽 관리를 위해 애플리케이션 인스턴스에 추가 메타데이터 주석을 삽입합니다.

Argo Rollouts CLI 및 UI

Argo Rollouts는 Argo Rollouts CLI라는 oc/kubectl 플러그인을 지원합니다. 이를 사용하여 명령줄에서 롤아웃, 분석 및 실험과 같은 리소스와 상호 작용할 수 있습니다. 일시 중지,승격 또는 재시도 와 같은 작업을 수행할 수 있습니다. Argo Rollouts CLI 플러그인은 브라우저에서 로컬 웹 UI 대시보드를 시작하여 Argo 롤아웃 리소스를 시각화하는 환경을 개선할 수 있습니다.

1.3.2. Argo 롤아웃 리소스

Argo Rollout 구성 요소는 여러 리소스를 관리하여 점진적인 제공을 활성화합니다.

  • 롤아웃별 리소스: 예를 들어 롤아웃,AnalysisRun 또는 Experiment.
  • Kubernetes 네트워킹 리소스: 네트워크 트래픽 형성을 위한 서비스,인그레스 또는 경로 등의 경우입니다. Argo Rollouts는 트래픽 관리라고 하는 이러한 리소스와 통합됩니다.

이러한 리소스는 Rollout CR을 통해 애플리케이션 배포를 사용자 정의하는 데 필요합니다.

Argo Rollouts는 다음 작업을 지원합니다.

  • 카나리아 배포를 위한 백분율 기반 트래픽을 라우팅합니다.
  • ServiceIngress 리소스를 사용하여 들어오는 사용자 트래픽을 올바른 애플리케이션 버전으로 전달합니다.
  • 여러 메커니즘을 사용하여 분석 지표를 수집하여 새 버전의 애플리케이션의 배포를 검증합니다.
표 1.2. Argo 롤아웃 리소스
이름설명

rollout

이 CR을 사용하면 카나리아 또는 blue-green 배포 전략을 사용하여 애플리케이션을 배포할 수 있습니다. 기본 제공 Kubernetes 배포 리소스를 대체합니다.

AnalysisRun

이 CR은 분석을 수행하고 분석 결과를 집계하여 사용자가 애플리케이션을 성공적으로 배포하도록 안내하는 데 사용됩니다. AnalysisRun CR은 AnalysisTemplate CR의 인스턴스입니다.

AnalysisTemplate

AnalysisTemplate CR은 메트릭을 쿼리하는 방법에 대한 지침을 제공하는 템플릿 파일입니다. 이러한 지침의 결과는 AnalysisRun CR 형식의 롤아웃에 연결됩니다. AnalysisTemplate CR은 클러스터 또는 특정 롤아웃에 전역적으로 정의할 수 있습니다. Experiment 사용자 지정 리소스를 생성하여 복제본 세트에 사용할 AnalysisTemplate 목록을 연결할 수 있습니다.

실험

Experiment CR은 애플리케이션이 올바르게 배포되도록 배포 중에 애플리케이션에서 수명이 짧은 분석을 실행하는 데 사용됩니다. Experiment CR은 독립적으로 사용하거나 Rollout CR의 일부로 실행할 수 있습니다.

Service and Ingress

Argo Rollouts는 서비스 및 Ingress 컨트롤러를 사용하여 서비스와 인그레스로 트래픽 라우팅을 기본적으로 지원합니다.

경로VirtualService

OpenShift 경로 및 Red Hat OpenShift Service Mesh VirtualService 리소스는 다양한 애플리케이션 버전에서 트래픽 분할을 수행하는 데 사용됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.