マルチクラスター GitOps 機能は、ArgoCD ApplicationSet を使用してアプリケーションオーケストレーションを簡素化します。この機能により、単一の構成から複数のクラスター間でアプリケーションを自動的に生成およびデプロイできます。このトピックでは、ACK One コンソールでマルチクラスターアプリケーションを作成する方法について説明します。
前提条件
フリート管理機能が有効になっています。 詳細については、「マルチクラスター管理の有効化」をご参照ください。
-
フリートに 1 つ以上の関連付けられたクラスターを追加していること。詳細については、「関連付けられたクラスターの追加」をご参照ください。
-
GitOps システムにログインしていること。詳細については、「GitOps システムへのログイン」をご参照ください。
操作手順
ACK Oneコンソールにログインします。 左側のナビゲーションウィンドウで、を選択します。
-
[マルチクラスター GitOps] ページの左上隅で、フリート名の横にある
アイコンをクリックし、ドロップダウンリストから対象のフリートを選択します。 -
をクリックして、マルチクラスターアプリケーションの作成 - GitOps ページを開きます。
-
[クイック作成] タブで、以下の表に示すパラメータを設定します。
パラメータ
説明
例
[マルチクラスターアプリケーションセット名]
ApplicationSet の名前。
appset-echo-server-demo
プロジェクト
ApplicationSet が属するプロジェクト。
default
[ソースコードアドレス]
アプリケーションのソースコードリポジトリの URL。
[Git ブランチ]
アプリケーションの Git ブランチ。
main
[パス]
Git リポジトリ内のアプリケーションの YAML マニフェストファイルへの相対パス。
manifests/helm/echo-server
デプロイ先クラスター
アプリケーションがデプロイされるクラスター。空欄の場合、
in-cluster(ArgoCD が実行されているコントロールプレーンクラスター) を除く、ArgoCD が管理するすべてのクラスターにアプリケーションがデプロイされます。Namespace
アプリケーションがデプロイされるデプロイ先クラスター内の Namespace。
demo
[アプリケーション名]
生成されるアプリケーションの名前。以下の変数を使用できます。
-
{{.name}}
-
{{.metadata.annotations.cluster_name}}
-
{{.metadata.annotations.cluster_id}}
{{.metadata.annotations.cluster_id}}-echoserver
詳細設定
[同期ポリシー (アプリケーションセット)]
削除時にリソースを保持:選択した場合、ApplicationSet が削除されても、ApplicationSet の子アプリケーションによって作成されたリソースは保持されます。
[同期ポリシー (アプリケーション)]
-
手動:手動同期。
-
自動:自動同期。
-
リソースのプルーニング:選択した場合、Git リポジトリで定義されていないリソースはクラスターから削除されます。
-
セルフヒール:選択した場合、アプリケーションのライブ状態が Git リポジトリの望ましい状態と自動的に調整されます。これにより、手動変更によって引き起こされる設定ドリフトが防止されます。
-
以下の表で、同期オプションについて説明します。
パラメータ
説明
スキーマ検証のスキップ
リソーススキーマ検証をスキップするかどうかを指定します。このオプションを選択すると、
kubectl apply --validate=falseの実行と同等になります。デフォルトでは、スキーマ検証が実行されます。名前空間の自動作成
選択した場合、対象の名前空間が存在しない場合は自動的に作成されます。
最後にプルーニング
選択した場合、他のすべてのリソースがデプロイされ正常になった後、同期操作の最後にリソースがプルーニングされます。
OutOfSync のみ適用
選択した場合、同期操作は OutOfSync ステータスのリソースにのみ変更を適用します。これにより、同期プロセスが高速化されます。
差分無視の尊重
選択した場合、同期中に
ignoreDifferences設定が尊重されます。ignoreDifferences設定で指定されたフィールドは、差分がチェックされません。サーバーサイド適用
Kubernetes のサーバーサイド適用を有効にします。リソースマニフェストが Kubernetes のアノテーションサイズの制限を超える場合、Argo CD で完全には管理されていない既存のリソースにパッチを適用する必要がある場合、またはフィールド所有権を追跡するために宣言的なアプローチを採用する場合は、このオプションを使用してください。
置換
選択した場合、リソースはデフォルトの
applyアクションではなく、置換アクション (kubectl replace) を使用して更新されます。置換アクションは、新しいリソースを作成する前に既存のリソースを削除しますが、applyはパッチを使用してリソースを更新します。リトライ
失敗した同期操作のリトライ戦略を設定します。リトライ回数、リトライ間隔、バックオフ設定などが含まれます。
同期オプションの詳細については、「Argo CD Sync Options」をご参照ください。
-
-
[クイック作成] 方式がニーズを満たさない場合は、[YAML の作成] タブを選択し、YAML で ApplicationSet を定義します。
説明[クイック作成] は [YAML の作成] と同期されており、変更は [YAML の作成] の YAML に反映されます。
-
[OK] をクリックします。[マルチクラスター GitOps] ページにリダイレクトされます。ApplicationSet が作成されると、リストに表示されます。[ステータス] 列にはデプロイ結果が表示され、アプリケーション 列には ApplicationSet によって生成されたアプリケーションの数が表示されます。
-
ApplicationSet の 名前 に対応する [名前] 列の数字をクリックします。マルチクラスターアプリケーションの詳細 ダイアログボックスが開き、生成されたアプリケーションが一覧表示されます。[アプリケーション名] をクリックすると、ArgoCD UI でそのページを開くことができます。アプリケーションのステータスが 正常 および 同期済み であることを確認します。これは、デプロイが正常に完了したことを示しています。