検索

3.3. ロールアウトの更新

download PDF

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

手順

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

    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 の順にクリックします。

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

      注記

      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 が定義されている 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.