クラスタースコープインスタンスは、クラスター全体にリソースをデプロイおよび管理することを目的としています。
任意の namespace のアプリケーション 機能を使用する場合は、Argo CD インスタンススコープのモードをクラスタースコープインスタンスとして選択します。
クラスタースコープのインスタンスはクラスターレベルのリソースにアクセスできるため、通常はクラスター設定に使用されますが、常に使用されるわけではありません。特定の namespace スコープの Argo CD インスタンスをクラスタースコープに昇格させることができます。インスタンスの権限を昇格させるには、GitOps Operator の Subscription リソースを変更する必要があります。
-
インスタンスを昇格する場合には、慎重に検討してください。
-
アプリケーションデリバリーチームが自己管理しているインスタンスを昇格しないでください。このようなインスタンスを昇格すると、自己管理インスタンスのユーザーがクラスター管理者になり、権限を完全に制御できるようになるため、クラスターにとって重大なセキュリティーリスクとなります。
Argo CD でマルチテナントを設定する際には、細心の注意を払う必要があります。たとえば、クラスター管理者が複数のアプリケーションチーム向けに共有の Argo CD インスタンスを管理している場合、カスタムのクラスタースコープインスタンスが適切かもしれません。
この方法はどのように機能しますか。
ユーザーが cluster-admin 権限で Argo CD インスタンスをデプロイできないようにするには、Subscription リソースの ARGOCD_CLUSTER_CONFIG_NAMESPACES 環境変数を使用して、クラスター権限を持つ namespace を識別する必要があります。
クラスター管理者以外のユーザーは Subscription リソースにアクセスできないため、インスタンスの権限を昇格してクラスターセキュリティーを回避できません。
インスタンスがクラスタースコープとして指定されると、Operator は自動的にクラスターロールとクラスターロールバインディングを作成します。これらは、その名前空間内の Argo CD アプリケーションコントローラーおよびサーバーサービスアカウント用に作成されます。
このデフォルトロールは、標準の cluster-admin ロールと同等であることを意図したものではありません。許可される権限の範囲ははるかに狭くなります。必要に応じて、追加のクラスターロールまたはクラスターロールバインディングを作成することで、これらの権限を拡張できます。