4.2. OpenShift 경로를 사용하여 트래픽을 라우팅하도록 Argo 롤아웃 구성
OpenShift 경로를 사용하여 Argo Rollouts를 구성하여 경로, 롤아웃 및 서비스를 생성할 수 있습니다.
다음 예제 절차에서는 경로, 롤아웃 및 두 개의 서비스를 생성합니다. 그런 다음 카나리아 상태가 성공으로 표시되고 새로운 안정적인 버전이 되기 전에 점차 증가하는 트래픽 백분율을 애플리케이션 카나리아 버전으로 라우팅합니다.
사전 요구 사항
- 관리자로 OpenShift Container Platform 클러스터에 로그인했습니다.
- OpenShift Container Platform 클러스터에 Red Hat OpenShift GitOps를 설치했습니다.
- OpenShift Container Platform 클러스터에 Argo 롤아웃을 설치했습니다. 자세한 내용은 " RolloutManager 사용자 정의 리소스 생성"을 참조하십시오.
- 시스템에 Red Hat OpenShift GitOps CLI를 설치했습니다. 자세한 내용은 " GitOps CLI 설치"를 참조하십시오.
- 시스템에 Argo Rollouts CLI를 설치했습니다. 자세한 내용은 "Argo Rollouts CLI 개요"를 참조하십시오.
프로세스
Route
오브젝트를 생성합니다.-
웹 콘솔의 관리자 화면에서 네트워킹
경로를 클릭합니다. - 경로 생성을 클릭합니다.
경로 생성 페이지에서 YAML 보기를 클릭하고 다음 스니펫을 추가합니다. 다음 예제에서는
rollouts-demo-route
라는 경로를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 생성 을 클릭하여 경로를 생성합니다. 그런 다음 경로 페이지에 표시됩니다.
-
웹 콘솔의 관리자 화면에서 네트워킹
경로에서 참조할 서비스를 생성합니다.
-
웹 콘솔의 관리자 화면에서 네트워킹
서비스를 클릭합니다. - 서비스 생성을 클릭합니다.
서비스 생성 페이지에서 YAML 보기를 클릭하고 다음 스니펫을 추가합니다. 다음 예제에서는
argo-rollouts-canary-service
라는 카나리아 서비스를 생성합니다. 카나리아 트래픽은 이 서비스로 이동합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요Route
오브젝트에 지정된 카나리아 서비스의 이름이Service
오브젝트에 지정된 카나리아 서비스의 이름과 일치하는지 확인합니다.생성 을 클릭하여 카나리아 서비스를 생성합니다.
롤아웃은 카나리아
ReplicaSet
의 Pod 템플릿 해시를 사용하여 생성된 서비스를 자동으로 업데이트합니다. 예를 들어rollouts-pod-template-hash: 7bf84f9696
.이 단계를 반복하여 stable 서비스를 생성합니다. 다음 예제에서는
argo-rollouts-stable-service
라는 안정적인 서비스를 생성합니다. 안정적인 트래픽이 이 서비스로 전달됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요Route
오브젝트에 지정된 안정적인 서비스의 이름이Service
오브젝트에 지정된 stable 서비스의 이름과 일치하는지 확인합니다.생성 을 클릭하여 안정적인 서비스를 생성합니다.
롤아웃은 안정적인
ReplicaSet
의 Pod 템플릿 해시를 사용하여 생성된 서비스를 자동으로 업데이트합니다. 예를 들어rollouts-pod-template-hash: 1b6a7733
.
-
웹 콘솔의 관리자 화면에서 네트워킹
Rollout
CR을 생성하여Route
및Service
오브젝트를 참조합니다.-
웹 콘솔의 관리자 화면에서 Operator
설치된 Operator Red Hat OpenShift GitOps 롤아웃 으로 이동합니다. 롤아웃 생성 페이지에서 YAML 보기를 클릭하고 다음 스니펫을 추가합니다. 다음 예제에서는
rollouts-demo
라는롤아웃
CR을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 생성을 클릭합니다.
- 롤아웃 탭의 롤아웃 섹션에서 롤아웃 의 상태 필드에 단계: Healthy 가 표시되는지 확인합니다.
-
웹 콘솔의 관리자 화면에서 Operator
경로가 100%의 트래픽을 안정적인 버전의 애플리케이션으로 유도하는지 확인합니다.
참고Rollout
리소스의 첫 번째 인스턴스가 생성되면 롤아웃은 안정적이고 카나리아 애플리케이션 버전으로 전달될 트래픽 양을 조정합니다. 초기 인스턴스에서Rollout
리소스 생성은 모든 트래픽을 애플리케이션의 안정적인 버전으로 라우팅하고 트래픽이 카나리아 버전으로 전송되는 부분을 건너뜁니다.롤아웃에 배포된 컨테이너 이미지를 수정하여 애플리케이션의 새 카나리아 버전을 시뮬레이션합니다.
-
웹 콘솔의 관리자 화면에서 Operator
설치된 Operator Red Hat OpenShift GitOps 롤아웃 으로 이동합니다. 기존 롤아웃 을 선택하고
argoproj/rollouts-demo:blue
toargoproj/rollouts-demo:yellow
에서.spec.template.spec.containers.image
값을 수정합니다.결과적으로 롤아웃에 배포된 컨테이너 이미지가 수정되고 롤아웃에서 새 카나리아 배포를 시작합니다.
참고Rollout
리소스의.spec.strategy.canary.steps
필드에 정의된setWeight
속성에 따라 처음 경로에 대한 트래픽의 30%가 카나리아 버전에 도달하고 트래픽의 70%가 안정적인 버전으로 이동합니다. 트래픽의 30%가 카나리아 버전으로 전달된 후 롤아웃이 일시 중지됩니다.카나리아 버전으로 전송되는 트래픽의 30 %와 stable 버전으로 향하는 70 %의 경로의 예.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
웹 콘솔의 관리자 화면에서 Operator
Argo Rollouts CLI에서 다음 명령을 실행하여 애플리케이션의 새 카나리아 버전을 시뮬레이션합니다.
oc argo rollouts promote rollouts-demo -n <namespace>
$ oc argo rollouts promote rollouts-demo -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Rollout
리소스가 정의된 네임스페이스를 지정합니다.
이렇게 하면 카나리아 버전의 트래픽 가중치가 60%이고 안정적인 버전의 40%가 증가합니다.
카나리아 버전으로 전송되는 트래픽의 60 %와 stable 버전으로 향하는 40 %의 경로의 예.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 카나리아 버전의 트래픽 가중치를 100%로 늘리고 다음 명령을 실행하여 애플리케이션의 이전 안정적인 버전의 트래픽을 삭제합니다.
oc argo rollouts promote rollouts-demo -n <namespace>
$ oc argo rollouts promote rollouts-demo -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Rollout
리소스가 정의된 네임스페이스를 지정합니다.
카나리아 버전으로 전송되는 트래픽의 0%와 stable 버전으로 100%가 전달되는 경로의 예.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow