このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
EKS Capability for Argo CD とセルフマネージド Argo CD を比較する
EKS Capability for Argo CD により、完全マネージド型の Argo CD を EKS で動作させることができます。EKS 機能とセルフマネージドソリューションの全般的な比較については、「EKS 機能と考慮事項」を参照してください。このトピックでは、認証、マルチクラスター管理、アップストリーム機能のサポートなど、Argo CD 固有の違いに焦点を当てます。
アップストリーム Argo CD との違い
EKS Capability for Argo CD は、アップストリームの Argo CD に基づいていますが、アクセス方法、設定方法、AWS サービスとの統合方法が異なります。
RBAC と認証: 機能が備える RBAC ロールには管理者、編集者、ビューワーの 3 つがあり、Argo CD に組み込みの認証ではなく AWS アイデンティティセンターを使用して認証を行います。Argo CD の argocd-rbac-cm ConfigMap ではなく、機能の rbacRoleMapping パラメータを使用して、アイデンティティセンターのグループを Argo CD ロールにマッピングするように、ロールマッピングを設定します。Argo CD UI は独自のダイレクト URL (クラスターの [機能] タブの EKS コンソールで確認) でホストされ、API アクセスは IAM を介した AWS 認証と認可を使用します。
クラスター設定: ローカルクラスターやハブアンドスポークトポロジは自動的には設定されません。自分でデプロイターゲットクラスターと EKS アクセスエントリを設定します。Amazon EKS クラスターがデプロイターゲットとしてサポートされるのは、Kubernetes API サーバー URL ではなく EKS クラスター ARN を使用している場合のみです。ローカルクラスター (kubernetes.default.svc) がデプロイターゲットとして自動的に追加されることはありません。機能の作成先と同じクラスターにデプロイするには、ARN を使用してそのクラスターを明示的に登録します。
シンプルなリモートクラスターアクセス: EKS アクセスエントリを使用して Argo CD にリモートクラスターへのアクセスを許可することで、マルチクラスターのデプロイをシンプルにします。そのため、サービスアカウントの IAM ロール (IRSA) を設定したり、クロスアカウント IAM ロールの前提条件をセットアップしたりする必要がありません。また、VPC ピアリングや特殊なネットワーク設定を施すことなく、完全にプライベートな EKS クラスターに透過的にアクセスできます。AWS が Argo CD 機能とプライベートリモートクラスターとの接続を自動的に管理します。
AWS サービスの直接統合: 機能ロールの IAM アクセス許可により、AWS サービスを直接統合します。リポジトリ設定を作成しなくても、CodeCommit リポジトリ、ECR Helm チャート、および CodeConnections を Application リソースで直接参照できます。これにより、認証がシンプルになり、AWS サービスごとに認証情報を管理する必要がありません。詳細については、「リポジトリアクセスを設定する」を参照してください。
名前空間のサポート: 現在のところ、機能の作成時に指定した 1 つの名前空間に限り、アプリケーションのデプロイがサポートされます。複数の名前空間に対するアプリケーションのサポートは、今後のリリースで追加される可能性があります。
サポートされていない機能: 次の機能は、マネージド機能では使用できません。
-
Config Management Plugin (CMP) によるカスタムマニフェストの生成
-
カスタム Lua スクリプトによるリソースヘルスの評価 (標準リソースに対する組み込みのヘルスチェックはサポートされています)
-
Notifications コントローラー
-
Argo CD Image Updater
-
カスタム SSO プロバイダー (AWS アイデンティティセンターを利用したサードパーティーのフェデレーション ID を含め、AWS アイデンティティセンターのみがサポートされています)
-
UI の拡張機能とカスタムのバナー
-
argocd-cmやargocd-paramsなどの設定 ConfigMaps への直接アクセス
互換性: Application と ApplicationSet は、アップストリーム Argo CD と同じように動作し、マニフェストの変更は不要です。この機能は同じ Kubernetes API と CRD を使用するため、kubectl のようなツールは同じように機能します。完全にサポートされるのは、Application と ApplicationSet、自動同期を備えた GitOps ワークフロー、マルチクラスターデプロイ、同期ポリシー (自動、プルーニング、自己修復)、同期ウェーブと同期フック、標準 Kubernetes リソースのヘルス評価、ロールバック機能、Git リポジトリソース (HTTPS と SSH)、Helm、Kustomize、プレーン YAML マニフェスト、GitHub アプリ認証情報、マルチテナンシーのプロジェクト、リソースの除外と包含です。
マネージド機能で Argo CD CLI を使用する
Argo CD CLI は、ほとんどのオペレーションでアップストリーム Argo CD と同じように動作しますが、認証とクラスター登録が異なります。
前提条件
アップストリームインストール手順
設定
環境変数を使用して CLI を設定する:
-
EKS コンソール (クラスターの [機能] タブの下) または AWS CLI を使用して、Argo CD サーバー URL を取得します。
export ARGOCD_SERVER=$(aws eks describe-capability \ --cluster-namemy-cluster\ --capability-namemy-argocd\ --query 'capability.configuration.argoCd.serverUrl' \ --output text \ --regionregion-code) -
Argo CD UI ([設定] → [アカウント] → [管理者] → [新しいトークンを生成]) からアカウントトークンを生成して、環境変数として設定します。
export ARGOCD_AUTH_TOKEN="your-token-here"
重要
このように生成した管理者アカウントトークンは、初期セットアップと開発ワークフローに使用します。本番稼働のユースケースでは、プロジェクト範囲のロールとトークンを使用して、最小特権の原則に従います。Project のロールと RBAC の詳細については、「Argo CD アクセス許可を設定する」を参照してください。
-
必要な gRPC オプションを設定します。
export ARGOCD_OPTS="--grpc-web"
これらの環境変数を設定すると、argocd login コマンドを実行しなくても Argo CD CLI を使用できます。
主な違い
マネージド機能では、CLI に次の制限があります。
-
argocd adminコマンドはサポートされていません (直接ポッドアクセスが必要です)。 -
argocd loginはサポートされていません (代わりにアカウントトークンまたはプロジェクトトークンを使用します)。 -
argocd cluster addには、EKS クラスター ARN を指定した--aws-cluster-nameフラグが必要です。
例: クラスターを登録する
アプリケーションをデプロイするための EKS クラスターを登録します。
# Get the cluster ARN CLUSTER_ARN=$(aws eks describe-cluster \ --namemy-cluster\ --query 'cluster.arn' \ --output text) # Register the cluster argocd cluster add $CLUSTER_ARN \ --aws-cluster-name $CLUSTER_ARN \ --name in-cluster \ --project default
Argo CD CLI の詳細なドキュメントについては、「Argo CD CLI リファレンス
移行パス
セルフマネージド Argo CD からマネージド機能に移行できます。
-
サポートされていない機能 (Notifications コントローラー、CMP、カスタムヘルスチェック) の現在の Argo CD 設定を確認します。
-
セルフマネージド Argo CD コントローラーをゼロレプリカにスケールします。
-
クラスターに Argo CD 機能リソースを作成します。
-
既存の Application、ApplicationSet、AppProject をエクスポートします。
-
リポジトリ認証情報、クラスターシークレット、リポジトリ認証情報テンプレート (repocreds) を移行します。
-
GPG キー、TLS 証明書、または SSH 既知のホストを使用する場合は、こうした設定も移行します。
-
クラスター名または EKS クラスター ARN を使用するように
destination.serverフィールドを更新します。 -
それらをマネージド Argo CD インスタンスに適用します。
-
アプリケーションが正しく同期されていることを確認します。
-
セルフマネージド Argo CD インストールを廃止します。
マネージド機能は同じ Argo CD API とリソース定義を使用するため、既存のマニフェストは最小限の変更を加えるだけで動作します。
次のステップ
-
Argo CD 機能を作成する - Argo CD 機能を作成する
-
Argo CD の使用 - 最初のアプリケーションをデプロイする
-
Argo CD に関する考慮事項 - AWS アイデンティティセンターの統合を設定する