将新部署限制在 Kubernetes 命名空间

Restrict New Deployments to Kubernetes namespace

我需要能够限制用户在现有命名空间空间中创建新的 Deployments/ReplicaSets 如果他们不匹配已批准的应用程序列表,我认为自定义准入控制器将是最好的方法,但我我不确定该怎么做。

有什么解决办法吗?

你是对的 - 如果你需要在准入控制决策中使用诸如已批准应用程序列表之类的数据,你需要的不仅仅是 RBAC。您可以编写自定义准入控制器,但更推荐的方法是为此使用 Open Policy Agent (OPA),因为它为您提供了所需的灵活性,而无需处理 low-level API 服务器集成问题.

查看 OPA Gatekeeper for an open source integration of OPA with Kubernetes, or Styra 以获得商业解决方案。

最后,Kyverno 是 OPA 的替代品,用于 policy-based Kubernetes 准入控制。