3.3. ロールアウトの更新
.spec.template.spec
フィールド (コンテナーイメージバージョンなど) を変更して Rollout
カスタムリソース (CR) を更新すると、更新されたコンテナーイメージバージョンを使用して、ReplicaSet
で新しい Pod が作成されます。
手順
ロールアウトでデプロイされたコンテナーイメージを変更して、アプリケーションの新しい canary バージョンをシミュレートします。
-
Web コンソールの Administrator パースペクティブで、Operator
Installed Operator Red Hat OpenShift GitOps Rollout に移動します。 -
既存の
rollouts-demo
ロールアウトを選択し、YAML ビューで.spec.template.spec.containers.image
の値をargoproj/rollouts-demo:blue
からargoproj/rollouts-demo:yellow
に変更します。 Save、Reload の順にクリックします。
ロールアウトでデプロイされたコンテナーイメージが変更され、ロールアウトによって新しい 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 # (...)
-
Web コンソールの Administrator パースペクティブで、Operator
次のコマンドを実行して、ロールアウトの進行状況を確認します。
$ 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
ロールアウトの更新ストラテジー設定で一時停止期間が指定されていないため、ロールアウトは現在一時停止状態になっています。
前の手順を繰り返して、新しくデプロイされたアプリケーションのバージョンをテストし、期待どおりに動作することを確認します。たとえば、ブラウザーを使用してアプリケーションの操作、アプリケーションの検証、テストの実行、コンテナーログの確認を行います。
ロールアウトは、次のステップに進むまで、一時停止されたままになります。
新しいバージョンのアプリケーションが期待どおりに動作していることを確認したら、プロモーションを続行するか、ロールアウトを中止するかを決定できます。したがって、「ロールアウトのプロモート」または「ロールアウトの手動中断」の手順に従ってください。