Argo Rollouts
점진적인 전달을 위해 Argo Rollouts 사용
초록
1장. 점진적 배포 전달을 위해 Argo Rollouts 사용 링크 복사링크가 클립보드에 복사되었습니다!
Argo 롤아웃은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
점진적인 제공은 제품 업데이트를 제어 및 점진적으로 배포하는 프로세스입니다. 점진적인 제공으로 인해 새 버전의 제품 업데이트를 처음에 사용자의 하위 집합에만 노출하여 릴리스의 위험을 줄일 수 있습니다. 이 프로세스에는 이 새 버전을 지속적으로 관찰 및 분석하여 해당 동작이 요구 사항 및 기대치와 일치하는지 확인해야 합니다. 이 검증은 프로세스가 제품 업데이트를 더 넓고 광범위한 대상에게 점진적으로 노출함에 따라 계속됩니다.
OpenShift Container Platform에서는 경로를 사용하여 다른 서비스 간에 트래픽을 분할하여 점진적인 제공 기능을 제공하지만 일반적으로 수동 개입과 관리가 필요합니다.
Argo Rollouts를 사용하면 자동화 및 메트릭 분석을 사용하여 점진적 배포 전달을 지원하고 새로운 버전의 애플리케이션을 자동 롤아웃 또는 롤백할 수 있습니다. Argo Rollouts는 고급 배포 기능을 제공하고 Ingress 컨트롤러 및 서비스 메시와의 통합을 활성화합니다. Argo Rollouts를 사용하여 배포된 애플리케이션의 다른 버전을 나타내는 여러 복제본 세트를 관리할 수 있습니다. 배포 전략에 따라 기존 트래픽 형성 기능을 최적화하고 트래픽을 새 버전으로 점진적으로 전환하여 업데이트 중에 이러한 버전으로의 트래픽을 처리할 수 있습니다. Argo 롤아웃은 Prometheus와 같은 메트릭 공급자와 결합하여 매개변수 세트를 기반으로 메트릭 기반 및 정책 기반 롤아웃 및 롤백을 수행할 수 있습니다.
1.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
-
cluster-admin권한이 있는 클러스터에 액세스할 수 있습니다. - OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
- Red Hat OpenShift GitOps 1.9.0 또는 최신 버전이 클러스터에 설치되어 있습니다.
1.2. Argo 롤아웃의 이점 링크 복사링크가 클립보드에 복사되었습니다!
기존 인프라에서 고급 배포 전략을 관리하고 조정하려면 오랜 유지 관리 기간이 필요한 경우가 많습니다. OpenShift Container Platform 및 Red Hat OpenShift GitOps와 같은 툴을 사용한 자동화는 이러한 창을 줄일 수 있지만 이러한 전략을 설정하는 것은 여전히 어려울 수 있습니다. Argo Rollouts를 사용하면 애플리케이션 팀이 롤아웃 전략을 선언적으로 정의할 수 있으므로 이 프로세스를 단순화할 수 있습니다. 팀은 더 이상 여러 배포 및 서비스를 정의하거나 트래픽 형성 및 테스트 통합을 위한 자동화를 생성할 필요가 없습니다. Argo Rollouts를 사용하면 선언적 롤아웃 전략에 필요한 모든 정의를 캡슐화하고 프로세스를 자동화하고 관리할 수 있습니다.
Red Hat OpenShift GitOps의 기본 워크로드로 Argo 롤아웃을 사용하면 다음과 같은 이점이 있습니다.
- GitOps 워크플로우의 일부로 점진적인 자동 제공
- 고급 배포 기능
- Blue-green 또는 카나리아와 같은 기존 고급 배포 전략 최적화
- 배포를 위한 제로 다운타임 업데이트
- 세분화되고 가중된 트래픽 전환
- 새 트래픽이 프로덕션 환경에 도달하지 않고 테스트할 수 있음
- 자동 롤백 및 승격
- 수동 판단
- 비즈니스 핵심 성과 지표 (KPI)의 사용자 정의 메트릭 쿼리 및 분석
- 고급 트래픽 라우팅을 위한 수신 컨트롤러 및 Red Hat OpenShift Service Mesh와의 통합
- 배포 전략 분석을 위한 메트릭 공급자와 통합
- 여러 공급자 사용
Argo Rollouts를 사용하면 최종 사용자 환경에서 점진적인 제공을 보다 쉽게 채택할 수 있습니다. 이를 통해 팀은 트래픽 관리자와 복잡한 인프라에 대해 배울 필요 없이 구조와 지침을 제공합니다. Red Hat OpenShift GitOps Operator는 자동 롤아웃을 통해 최종 사용자 환경에 보안을 제공하고 리소스, 비용 및 시간을 효과적으로 관리하는 데 도움이 됩니다. 보안 및 자동화된 배포와 함께 Argo CD를 사용하는 기존 사용자는 프로세스 초기에 피드백을 얻고 영향을 미치는 문제를 방지합니다.
1.3. RolloutManager 사용자 정의 리소스 및 사양 정보 링크 복사링크가 클립보드에 복사되었습니다!
Argo 롤아웃을 사용하려면 클러스터에 Red Hat OpenShift GitOps Operator를 설치한 다음 선택한 네임스페이스의 Operator에 RolloutManager CR(사용자 정의 리소스)을 생성하고 제출해야 합니다. 단일 네임스페이스 또는 여러 네임스페이스에 대해 RolloutManager CR의 범위를 지정할 수 있습니다. Operator는 다음과 같은 네임스페이스 범위 지원 리소스를 사용하여 argo-rollouts 인스턴스를 생성합니다.
- Argo Rollouts 컨트롤러
- Argo Rollouts 메트릭 서비스
- Argo Rollouts 서비스 계정
- Argo 롤아웃 역할
- Argo Rollouts 역할 바인딩
- Argo Rollouts 시크릿
RolloutsManager CR의 사양에 Argo Rollouts 컨트롤러 리소스에 대해 명령 인수, 환경 변수, 사용자 정의 이미지 이름 등을 지정할 수 있습니다. RolloutManager CR 사양은 Argo Rollouts의 원하는 상태를 정의합니다.
예: RolloutManager CR
1.3.1. Argo Rollouts 컨트롤러 링크 복사링크가 클립보드에 복사되었습니다!
Argo Rollouts 컨트롤러 리소스를 사용하면 네임스페이스에서 프로그레시브 애플리케이션 제공을 관리할 수 있습니다. Argo Rollouts 컨트롤러 리소스는 클러스터에 이벤트를 모니터링하고 Argo Rollouts와 관련된 모든 리소스가 변경될 때마다 반응합니다. 컨트롤러는 모든 롤아웃 세부 정보를 읽고 롤아웃 정의에 설명된 것과 동일한 상태로 클러스터를 가져옵니다.
1.4. RolloutManager 사용자 정의 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift GitOps에서 Argo Rollouts를 사용하여 배포를 점진적으로 제공하려면 선택한 네임스페이스에서 RolloutManager CR(사용자 정의 리소스)을 생성하고 구성해야 합니다. 기본적으로 모든 새 argo-rollouts 인스턴스에는 배포된 네임스페이스에서만 리소스를 관리할 수 있는 권한이 있지만 필요에 따라 여러 네임스페이스에서 Argo Rollouts를 사용할 수 있습니다.
사전 요구 사항
- Red Hat OpenShift GitOps 1.9.0 또는 최신 버전이 클러스터에 설치되어 있습니다.
프로세스
- OpenShift Container Platform 웹 콘솔에 클러스터 관리자로 로그인합니다.
- 관리자 화면에서 Operator → 설치된 Operator 를 클릭합니다.
-
프로젝트 드롭다운 메뉴에서
RolloutManagerCR(사용자 정의 리소스)을 생성하고 구성할 프로젝트를 생성하거나 선택합니다. - 설치된 Operator에서 OpenShift GitOps Operator 를 선택합니다.
- 세부 정보 탭의 제공된 API 섹션에서 RolloutManager 창에서 인스턴스 생성 을 클릭합니다.
RolloutManager 생성 페이지에서 YAML 보기를 선택하고 기본 YAML을 사용하거나 요구 사항에 따라 편집합니다.
예:
RolloutManagerCRCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 생성을 클릭합니다.
- RolloutManager 탭의 RolloutManagers 섹션에서 RolloutManager 인스턴스의 Status 필드가 Phase: Available 로 표시되는지 확인합니다.
왼쪽 탐색 창에서 네임스페이스 범위 지원 리소스 생성을 확인합니다.
-
워크로드 → 배포를 클릭하여
argo-rollouts배포를 실행 중인 1개의Pod 중 1개로 표시된 상태에서 사용할 수 있는지 확인합니다. -
워크로드 → 시크릿을 클릭하여
argo-rollouts-notification-secret시크릿을 사용할 수 있는지 확인합니다. -
네트워킹 → 서비스를 클릭하여
argo-rollouts-metrics서비스를 사용할 수 있는지 확인합니다. -
사용자 관리 → 역할을 클릭하여
argo-rollouts역할 및argo-rollouts-aggregate-to-admin,argo-rollouts-aggregate-to-edit,argo-rollouts-aggregate-to-view클러스터 역할을 사용할 수 있는지 확인합니다. -
사용자 관리 → RoleBindings 를 클릭하여
argo-rollouts역할 바인딩을 사용할 수 있는지 확인합니다.
-
워크로드 → 배포를 클릭하여
1.5. RolloutManager 사용자 정의 리소스 삭제 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift GitOps Operator를 설치 제거해도 설치 중에 생성된 리소스는 제거되지 않습니다. Red Hat OpenShift GitOps Operator를 제거하기 전에 RolloutManager CR(사용자 정의 리소스)을 수동으로 삭제해야 합니다.
사전 요구 사항
- Red Hat OpenShift GitOps 1.9.0 또는 최신 버전이 클러스터에 설치되어 있습니다.
-
네임스페이스에
RolloutManagerCR이 있습니다.
프로세스
- OpenShift Container Platform 웹 콘솔에 클러스터 관리자로 로그인합니다.
- 관리자 화면에서 Operator → 설치된 Operator 를 클릭합니다.
-
프로젝트 드롭다운 메뉴를 클릭하고
RolloutManagerCR이 포함된 프로젝트를 선택합니다. - 설치된 Operator에서 OpenShift GitOps Operator 를 선택합니다.
- RolloutManager 탭을 클릭하여 RolloutManagers 섹션에서 RolloutManager 인스턴스를 찾습니다.
- 인스턴스를 클릭합니다.
- 드롭다운 메뉴에서 작업 → 롤아웃 삭제 를 클릭하고 삭제 를 클릭하여 대화 상자에서 확인합니다.
- RolloutManager 탭의 RolloutManagers 섹션에서 RolloutManager 인스턴스를 더 이상 사용할 수 없는지 확인합니다.
왼쪽 탐색 창에서 네임스페이스 범위의 지원 리소스가 삭제되었는지 확인합니다.
-
워크로드 → 배포를 클릭하여
argo-rollouts배포가 삭제되었는지 확인합니다. -
워크로드 → 시크릿을 클릭하여
argo-rollouts-notification-secret시크릿이 삭제되었는지 확인합니다. -
네트워킹 → 서비스를 클릭하여
argo-rollouts-metrics서비스가 삭제되었는지 확인합니다. -
사용자 관리 → 역할을 클릭하여
argo-rollouts역할 및argo-rollouts-aggregate-to-admin,argo-rollouts-aggregate-to-edit,argo-rollouts-aggregate-to-view클러스터 역할이 삭제되었는지 확인합니다. -
사용자 관리 → RoleBindings 를 클릭하여
argo-rollouts역할 바인딩이 삭제되었는지 확인합니다.
-
워크로드 → 배포를 클릭하여