我发现在为 Kubernetes 集群实现多租户时,建议每个集群有一个 Ingress。 那样,
service1
的 tenanta
可以有一个端点,例如 service1.tetanta.example.com
我的问题是,在多租户场景中这是如何实现的?
考虑到 Ingress 是单个 kubernetes 对象,那么 Ingress 对象的生命周期会是什么样子?
谁创建了 Ingress? (如果共享的话,应该是平台团队)和 租户如何向 Ingress 注册他们的服务?
非常感谢任何解释这种情况的示例
多租户集群由各种客户和职责共享,这些客户和职责被称为“占用者”。为了防止受损或恶意租户对集群和其他租户造成损害,多租户集群的运营商必须将租户彼此分开。此外,租户必须公平分配集群资源。
根据 Amir Rawdat 撰写的doc:
NGINX Ingress Controller 支持多租户模型,但有 两种主要模式。通常由基金会专家合作设计 整合了各种 NGINX 入口监管机构 实际脱离,而风险设计通常利用 常见的 NGINX 入口调节器通过命名空间分离进行发送。在 这部分我们从上到下研究努力设计;查看 我们的文档了解有关如何运行多个 NGINX 的更多详细信息 入口控制器。
NGINX Ingress Controller 支持标准 Kubernetes Ingress 资源和自定义 NGINX Ingress 资源,这使得更多 复杂的流量管理和控制权委托 配置到多个团队。自定义资源是 虚拟服务器、虚拟服务器路由、全局配置、 传输服务器和策略。
在 Kubernetes 集群中实现多租户时,您有 两种选择:完全自助服务和有限自助服务。
请参阅 Devoteam 撰写的博客 1 和 Michael 撰写的博客 2,了解有关在 kubernetes 中创建和使用多租户部署的更多信息。
Gateway 很有帮助,正如 @Jonas 在他的评论中建议的那样
Gateway API 提供了一种模块化方法来解决这个问题