集群范围的实例旨在在集群中部署和管理资源。
如果要在 任何命名空间功能中使用 Applications,请选择 Argo CD 实例范围模式作为集群范围的实例。
集群范围的实例可以访问集群级别的资源,因此通常并不总是用于集群配置。您可以选择提升某些命名空间范围的 Argo CD 实例,以成为集群范围的。要提升实例,您必须更改 GitOps Operator 的 Subscription 资源。
-
确保在提升实例时仔细考虑。
-
不要提升由应用程序交付团队自我管理的实例。提升此类实例会对集群造成严重的安全风险,因为此操作使用户自助管理的实例集群管理员,并为他们完全控制权限。
在 Argo CD 中设置多租户时,必须小心。例如,如果集群管理员为多个应用程序团队管理共享 Argo CD 实例,则自定义集群范围的实例可能合适。
此方法是如何工作的?
要防止用户使用 cluster-admin 权限部署 Argo CD 实例,您必须使用 Subscription 资源中的 ARGOCD_CLUSTER_CONFIG_NAMESPACES 环境变量来识别具有集群特权的命名空间。
因为非集群管理员无法访问订阅资源,所以它们无法提升其实例的权限并绕过集群安全性。
当实例指定为集群范围的时,Operator 会自动创建集群角色和集群角色绑定。这些是为该命名空间中的 Argo CD Application Controller 和服务器服务帐户创建的。
此默认角色不应等于标准 cluster-admin 角色。它给出了一组较小的权限。您可以根据需要创建额外的集群角色或集群角色绑定来扩展这些权限。