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 でプログレッシブ配信を実践できるようにする複数のコンポーネントで構成されています。

表1.1 Argo Rollouts コンポーネント
名前説明

Argo Rollouts Controller

Argo Rollouts Controller は標準の Deployment リソースの代わりで、それと共存します。このコントローラーは、Argo Rollouts リソースの変更にのみ応答し、Rollout CR を管理します。Argo Rollouts Controller は標準のデプロイメントリソースを変更しません。

AnalysisRun Controller

AnalysisRun コントローラーは、AnalysisRun および AnalysisTemplate CR の分析を管理および実行します。ロールアウトをメトリクスプロバイダーに接続し、アプリケーションのデプロイメント更新が成功したかどうかを判断するメトリクスのしきい値を定義します。

Experiment controller

Experiment コントローラーは、有効期限の短いレプリカセットで分析を実行し、Experiment カスタムリソースを管理します。カナリアデプロイメント strategy フィールドで experiment ステップを指定することにより、コントローラーを Rollout リソースと統合することもできます。

Service および Ingress コントローラー

Service コントローラーは Service リソースを管理し、Ingress コントローラーは Argo Rollouts によって変更された Ingress リソースを管理します。これらのコントローラーは、トラフィック管理のためにアプリケーションインスタンスに追加のメタデータアノテーションを挿入します。

Argo Rollouts CLI と UI

Argo Rollouts は、Argo Rollouts CLI と呼ばれる oc/kubectl プラグインをサポートしています。これを使用して、コマンドラインからロールアウト、分析、実験などのリソースと対話できます。pausepromoteretry などの操作を実行できます。Argo Rollouts CLI プラグインを使用すると、ブラウザーでローカル Web UI ダッシュボードを起動して、Argo Rollouts リソースの視覚化エクスペリエンスを強化できます。

1.3.2. Argo Rollouts のリソース

Argo Rollout コンポーネントは、複数のリソースを管理して、プログレッシブ配信を有効にします。

  • Rollouts 固有のリソース: RolloutAnalysisRunExperiment など。
  • Kubernetes ネットワークリソース: ネットワークトラフィックシェーピングの ServiceIngress、または Route など。Argo Rollouts は、トラフィック管理と呼ばれるこれらのリソースと統合します。

これらのリソースは、Rollout CR を介してアプリケーションのデプロイメントをカスタマイズするために不可欠です。

Argo Rollouts は、次のアクションをサポートしています。

  • カナリアデプロイメントのパーセンテージベースのトラフィックをルーティングする。
  • Service および Ingress リソースを使用して、受信ユーザートラフィックを正しいアプリケーションバージョンに転送します。
  • 複数のメカニズムを使用して分析メトリクスを収集し、アプリケーションの新しいバージョンのデプロイメントを検証します。
表1.2 Argo Rollouts のリソース
名前説明

Rollout

この CR により、カナリアまたは blue-green デプロイメントストラテジーを使用したアプリケーションのデプロイメントが可能になります。これは、組み込みの Kubernetes Deployment リソースを置き換えます。

AnalysisRun

この CR は、分析を実行し、分析結果を集約して、アプリケーションの正常なデプロイメント配信に向けてユーザーを導くために使用されます。AnalysisRun CR は、AnalysisTemplate CR のインスタンスです。

AnalysisTemplate

AnalysisTemplate CR は、メトリクスのクエリー方法の説明を提供するテンプレートファイルです。これらの命令の結果は、AnalysisRun CR の形式でロールアウトに割り当てられます。AnalysisTemplate CR はクラスターまたは特定のロールアウトでグローバルに定義できます。Experiment カスタムリソースを作成すると、レプリカセットで使用される AnalysisTemplate のリストをリンクできます。

Experiment

Experiment CR は、アプリケーションが正しくデプロイされるように、デプロイ中にアプリケーションで有効期限の短い分析を実行するために使用されます。Experiment CR は個別に使用することも、Rollout CR の一部として実行することもできます。

ServiceIngress

Argo Rollouts は、Service および Ingress コントローラーを使用して、サービスと Ingress によるトラフィックのルーティングをネイティブにサポートします。

Route および VirtualService

OpenShift Route および Red Hat OpenShift Service Mesh VirtualService リソースは、異なるアプリケーションバージョン間でトラフィック分割を実行するために使用されます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

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

会社概要

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

© 2024 Red Hat, Inc.