是否可以定义入口使其指向不同的命名空间。
例如 为不同的客户运行相同的应用程序。 命名空间 - Customer1、Customer2
两者都具有相同的 api - /api/v1/images/
两者都托管在同一个集群上 - api-dev
现在我们可以根据 api 中的客户名称将流量定向到不同的命名空间 例如
Customer1/api/v1/images/- 将显示存储在 Customer1 命名空间中的图像
Customer2/api/v1/images/- 将显示存储在 Customer2 命名空间中的图像
客户名称将由在默认命名空间中运行的另一个服务提供
答案 0 :(得分:1)
有几种方法可以做到这一点:
您可以在每个命名空间中为每个 Service
创建一个 DNS 条目,并让每个命名空间都有自己的 LoadBalancer(可能成本较高,但每个应用程序都可以独立扩展等)
您可以使用 Istio 创建单个 Gateway
并为每个 VirtualServices
创建一个 Namespace
。这允许一个 DNS 连接到您的集群,Istio 可以将流量重定向到每个命名空间,而无需更新集群 DNS
您可以为您的应用程序 (https://github.com/c6o/provisioners) 编写一个简短的 CodeZero 配置程序,CodeZero 将自动为每个命名空间中的每个应用程序实例执行 DNS/入口。您可以使用现有应用进行测试