3.3. 롤아웃 업데이트


.spec.template.spec 필드(예: 컨테이너 이미지 버전)를 수정하여 롤링 CR(사용자 정의 리소스)을 업데이트하면 업데이트된 컨테이너 이미지 버전을 사용하여 ReplicaSet 을 통해 새 Pod가 생성됩니다.

프로세스

  1. 롤아웃에 배포된 컨테이너 이미지를 수정하여 애플리케이션의 새 카나리아 버전을 시뮬레이션합니다.

    1. 웹 콘솔의 관리자 화면에서 Operator 설치된 Operator Red Hat OpenShift GitOps 롤아웃 으로 이동합니다.
    2. 기존 rollouts-demo 롤아웃을 선택하고 YAML 보기에서 argoproj/rollouts-demo:blue to argoproj/rollouts-demo:yellow 에서 .spec.template.spec.containers.image 값을 수정합니다.
    3. 저장을 클릭한 다음 다시 로드 를 클릭합니다.

      롤아웃에 배포된 컨테이너 이미지가 수정되고 롤아웃에서 새 카나리아 배포를 시작합니다.

      참고

      Rollout CR의 .spec.strategy.canary.steps 필드에 정의된 setWeight 속성에 따라 처음 경로에 대한 트래픽의 20%가 카나리아 버전에 도달하고 승격 요청이 수신될 때까지 롤아웃이 무기한 일시 중지됩니다.

      카나리아 버전으로 전송되는 트래픽의 20%가 있고 승격 요청이 후속 단계에서 지정될 때까지 롤아웃이 무기한 정지되는 경로의 예

      spec:
        replicas: 5
        strategy:
          canary: 1
            steps: 2
            - setWeight: 20 3
            - pause: {}  4
        # (...)

      1
      롤아웃에서 사용해야 하는 배포 전략입니다.
      2
      롤아웃 단계입니다. 이 예에서는 20%, 40%, 60 % 및 80%의 트래픽을 카나리아 버전으로 점진적으로 라우팅합니다.
      3
      카나리아 버전으로 이동해야 하는 트래픽의 백분율입니다. 값 20은 트래픽의 20%가 카나리아 버전으로 전달됨을 의미합니다.
      4
      Argo Rollouts 컨트롤러에 사양으로 승격 요청을 찾을 때까지 무기한 정지합니다.
  2. 다음 명령을 실행하여 롤아웃 진행을 확인합니다.

    $ oc argo rollouts get rollout rollouts-demo --watch -n <namespace> 1
    1
    Rollout CR이 정의된 네임스페이스를 지정합니다.

    출력 예

    Name:            rollouts-demo
    Namespace:       spring-petclinic
    Status:          ॥ Paused
    Message:         CanaryPauseStep
    Strategy:        Canary
      Step:          1/8
      SetWeight:     20
      ActualWeight:  20
    Images:          argoproj/rollouts-demo:blue (stable)
                     argoproj/rollouts-demo:yellow (canary)
    Replicas:
      Desired:       5
      Current:       5
      Updated:       1
      Ready:         5
      Available:     5
    
    NAME                                       KIND        STATUS     AGE    INFO
    ⟳ rollouts-demo                            Rollout     ॥ Paused   9m51s
    ├──# revision:2
    │  └──⧉ rollouts-demo-6cf78c66c5           ReplicaSet  ✔ Healthy  99s    canary
    │     └──□ rollouts-demo-6cf78c66c5-zrgd4  Pod         ✔ Running  98s    ready:1/1
    └──# revision:1
       └──⧉ rollouts-demo-687d76d795           ReplicaSet  ✔ Healthy  9m51s  stable
          ├──□ rollouts-demo-687d76d795-75k57  Pod         ✔ Running  9m50s  ready:1/1
          ├──□ rollouts-demo-687d76d795-jsxg8  Pod         ✔ Running  9m50s  ready:1/1
          ├──□ rollouts-demo-687d76d795-rsgtv  Pod         ✔ Running  9m50s  ready:1/1
          └──□ rollouts-demo-687d76d795-xrmrj  Pod         ✔ Running  9m50s  ready:1/1

    롤아웃의 업데이트 전략 구성에 지정된 일시 중지 기간이 없기 때문에 롤아웃이 일시 중지된 상태입니다.

  3. 이전 단계를 반복하여 새로 배포된 버전의 애플리케이션을 테스트하고 예상대로 작동하는지 확인합니다. 예를 들어 브라우저를 통해 애플리케이션과 상호 작용하여 애플리케이션을 확인하고 테스트를 실행하거나 컨테이너 로그를 관찰합니다.

    롤아웃은 다음 단계로 이동할 때까지 일시 중지된 상태로 유지됩니다.

새 버전의 애플리케이션이 예상대로 작동하는지 확인한 후 승격을 계속하거나 롤아웃을 중단할지 여부를 결정할 수 있습니다. 따라서 "출처 제공" 또는 "수동적으로 롤아웃 중단"의 지침을 따르십시오.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.