3.3. ロールアウトの更新


.spec.template.spec フィールド (コンテナーイメージバージョンなど) を変更して Rollout カスタムリソース (CR) を更新すると、更新されたコンテナーイメージバージョンを使用して、ReplicaSet で新しい Pod が作成されます。

手順

  1. ロールアウトでデプロイされたコンテナーイメージを変更して、アプリケーションの新しい canary バージョンをシミュレートします。

    1. Web コンソールの Administrator パースペクティブで、Operator Installed Operator Red Hat OpenShift GitOps Rollout に移動します。
    2. 既存の rollouts-demo ロールアウトを選択し、YAML ビューで .spec.template.spec.containers.image の値を argoproj/rollouts-demo:blue から argoproj/rollouts-demo:yellow に変更します。
    3. SaveReload の順にクリックします。

      ロールアウトでデプロイされたコンテナーイメージが変更され、ロールアウトによって新しい canary デプロイメントが開始されます。

      注記

      Rollout CR の .spec.strategy.canary.steps フィールドで定義されている setWeight プロパティーに従って、最初にルートへのトラフィックの 20% が canary バージョンに到達し、ロールアウトは、プロモーションのリクエストが受信されるまで無期限に一時停止されます。

      トラフィックの 20% が canary バージョンに向けられ、後続のステップでプロモーションのリクエストが指定されるまでロールアウトが無期限に一時停止されるルートの例

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

      1
      ロールアウトで使用する必要のあるデプロイメントストラテジー。
      2
      ロールアウトの手順です。この例では、トラフィックの 20%、40%、60%、80% を段階的に canary バージョンにルーティングします。
      3
      canary バージョンに送信する必要があるトラフィックの割合。値が 20 の場合、トラフィックの 20% が canary バージョンに送信されることを意味します。
      4
      プロモーションのリクエストが見つかるまで、Argo Rollouts コントローラーを無期限に一時停止する仕様。
  2. 次のコマンドを実行して、ロールアウトの進行状況を確認します。

    $ oc argo rollouts get rollout rollouts-demo --watch -n <namespace> 1
    1
    Rollout CR が定義されている namespace を指定します。

    出力例

    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 では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.