1.3. Argo Rollouts アーキテクチャーの概要
Argo Rollouts サポートは、Red Hat OpenShift GitOps Operator をインストールし、RolloutManager
カスタムリソース (CR) インスタンスを設定することで、クラスター上で有効になります。
RolloutManager
CR が作成されると、Red Hat OpenShift GitOps Operator は同じ namespace に Argo Rollouts をインストールします。この手順には、Argo Rollouts コントローラーのインストール、および CR、ロール、ロールバインディング、設定データなどの Argo Rollouts の処理に必要なリソースが含まれます。
Argo Rollouts コントローラーは、次の 2 つのモードでインストールできます。
- クラスタースコープモード (デフォルト): コントローラーは、クラスター内のすべての namespace 全体のリソースを監視します。
- namespace スコープモード: コントローラーは、Argo Rollouts がデプロイされている namespace 内のリソースを監視します。
Argo Rollouts のアーキテクチャーは、コンポーネントとリソースで設定されています。コンポーネントは、リソースの管理に使用されます。たとえば、AnalysisRun コントローラーは AnalysisRun
CR を管理します。
Argo Rollouts には、新しいアプリケーションバージョンがデプロイされていることを確認するための分析メトリクスを収集するいくつかのメカニズムが含まれています。
-
Prometheus メトリクス:
AnalysisTemplate
CR は、Prometheus インスタンスに接続して、1 つ以上のメトリクスの成功または失敗を評価するように設定されています。 -
Kubernetes ジョブメトリクス: Argo Rollouts は、リソースメトリクスの分析を実行するための Kubernetes
Job
リソースをサポートします。Kubernetes ジョブの実行が成功したかどうかに基づいて、アプリケーションのデプロイメントが成功したかどうかを確認できます。
1.3.1. Argo Rollouts コンポーネント
Argo Rollouts は、ユーザーが OpenShift Container Platform でプログレッシブ配信を実践できるようにする複数のコンポーネントで構成されています。
名前 | 説明 |
---|---|
Argo Rollouts Controller |
Argo Rollouts Controller は標準の |
AnalysisRun Controller |
AnalysisRun コントローラーは、 |
|
|
|
Service コントローラーは |
Argo Rollouts CLI と UI |
Argo Rollouts は、Argo Rollouts CLI と呼ばれる |
1.3.2. Argo Rollouts のリソース
Argo Rollout コンポーネントは、複数のリソースを管理して、プログレッシブ配信を有効にします。
-
Rollouts 固有のリソース:
Rollout
、AnalysisRun
、Experiment
など。 -
Kubernetes ネットワークリソース: ネットワークトラフィックシェーピングの
Service
、Ingress
、またはRoute
など。Argo Rollouts は、トラフィック管理と呼ばれるこれらのリソースと統合します。
これらのリソースは、Rollout
CR を介してアプリケーションのデプロイメントをカスタマイズするために不可欠です。
Argo Rollouts は、次のアクションをサポートしています。
- カナリアデプロイメントのパーセンテージベースのトラフィックをルーティングする。
-
Service
およびIngress
リソースを使用して、受信ユーザートラフィックを正しいアプリケーションバージョンに転送します。 - 複数のメカニズムを使用して分析メトリクスを収集し、アプリケーションの新しいバージョンのデプロイメントを検証します。
名前 | 説明 |
---|---|
|
この CR により、カナリアまたは blue-green デプロイメントストラテジーを使用したアプリケーションのデプロイメントが可能になります。これは、組み込みの Kubernetes |
|
この CR は、分析を実行し、分析結果を集約して、アプリケーションの正常なデプロイメント配信に向けてユーザーを導くために使用されます。 |
|
|
|
|
| Argo Rollouts は、Service および Ingress コントローラーを使用して、サービスと Ingress によるトラフィックのルーティングをネイティブにサポートします。 |
|
OpenShift |