1.6.2.2. アーキテクチャープルモデル
- プルモデルでは、ハブクラスター内のコントローラーのストレスが軽減されるため、プッシュモデルと比較してスケーラビリティーが軽減されますが、より多くのリクエストとステータスレポートが必要になります。
- プルモデルの場合、OpenShift Container Platform GitOps は、一元化されたハブクラスターからマネージドクラスターにリソースを直接適用 しません。Argo CD アプリケーションは、ハブクラスターからマネージドクラスターに伝播されます。
-
Pull モデルの実装では、OpenShift Cluster Manager の登録、配置、
manifestWorkAPI が適用され、ハブクラスターがハブクラスターとマネージドクラスター間のセキュアな通信チャネルを使用してリソースをデプロイできるようになります。 - 各マネージドクラスターは個別に GitHub リポジトリーと通信してリソースマニフェストをローカルにデプロイするため、各マネージドクラスターに OpenShift GitOps operator をインストールして設定する必要があります。
-
Argo CD サーバーは、各ターゲットのマネージドクラスター上で実行されている必要があります。Argo CD アプリケーションリソースはマネージドクラスター上に複製され、ローカルの Argo CD サーバーによってデプロイされます。マネージドクラスター上の分散 Argo CD アプリケーションは、ハブクラスター上の単一の Argo CD
ApplicationSetリソースを使用して作成されます。 -
マネージドクラスターは、
ocm-managed-clusterアノテーションの値によって決定されます。 -
Pull モデルを正常に実装するには、Argo CD アプリケーションコントローラーは、
ApplicationSetのテンプレートセクションにあるargocd.argoproj.io/skip-reconcileアノテーションを持つプッシュモデルアプリケーションリソースを 無視 する必要があります。 - Pull モデルの場合、マネージドクラスター上の Argo CD アプリケーションコントローラー が調整してアプリケーションをデプロイします。
- ハブクラスター上の Pull モデル Resource sync controller は、各マネージドクラスター上の OpenShift Cluster Manager 検索 V2 コンポーネントに定期的にクエリーを実行し、各 Argo CD アプリケーションのリソースリストとエラーメッセージを取得します。
-
ハブクラスターの Aggregation controller はリソース同期コントローラーからのデータと、
manifestWorkからのステータス情報を使用して、クラスター全体からMulticlusterApplicationSetReportを作成および更新します。 - デプロイメントのステータスはハブクラスターに収集されますが、すべての詳細情報が送信されるわけではありません。概要を提供するために、追加のステータス更新が定期的に収集されます。ステータスのフィードバックはリアルタイムではなく、各マネージドクラスターの OpenShift GitOps operator は Git リポジトリーと通信する必要があるため、複数のリクエストが発生します。