0

我们有以下两个端点,有各自的组织和空间

1)开发环境: a.b.c.org.cloud

2)概念证明环境(POC):a.b.c.poc.io


在 POC 环境中运行一个my-cool-app带有路由名称的 app( )。my-cool-app.a.b.c.poc.io

由于此应用程序中的代码异味问题,路由名称由应用程序源代码(硬编码)决定,而不是通过manifest.yml. cf push这导致开发环境中的my-cool-app.a.b.c.poc.io路由 名称相同。my-cool-app


my-cool-app.a.b.c.poc.io 1) 应用程序在开发环境( ) 中可以有相同的路由名称a.b.c.org.cloud吗?org.cloudfoundry.client.v2.ClientV2Exception: CF-InvalidRelation(1002): The app cannot be mapped to this route because the route is not in this space. Apps must be mapped to routes in the same space.因为我们在之后看到这个错误cf push

2) Dev 和 POC 环境是否有相同的云控制器数据库(CCDB)?因为 CCDB 维护 app name 与 routename 的绑定

4

1 回答 1

1

1) 应用程序在开发环境(abcorg.cloud)中可以具有相同的路由名称 my-cool-app.abcpoc.io 吗?

这取决于“dev”和“poc”环境的含义。如果它们是完全独立的基础,那么是的。它应该工作。您只需使用 DNS 来控制实际流量的路由位置。

如果他们共享同一个云控制器,比如你有一个“dev”和“poc”组织,那么它可以工作但有限制。您可以将相同的路线映射到两个不同的应用程序,但它们必须位于同一空间中。这就是这个错误所说的。

该应用程序无法映射到该路线,因为该路线不在此空间中。应用程序必须映射到同一空间中的路由。

如果您将相同的路由映射到两个不同的应用程序,那么您实际上所做的就是将流量以 50/50 的比例分配给两个应用程序。如果云控制器允许跨组织和空间进行此操作,那么您可以在不同的组织和空间中拥有能够将流量从您的应用程序转移到另一个应用程序(可能是恶意应用程序)的人,这将是一个很大的安全问题。鉴于此,云控制器会阻止这种情况被允许。

2) Dev 和 POC 环境是否有相同的云控制器数据库(CCDB)?因为 CCDB 维护 app name 与 routename 的绑定

听起来您的环境确实如此,但这不是严格的要求。你可以有两个完全独立的基础,一个用于 Dev,一个用于 POC,它们不共享任何东西。

于 2019-02-10T19:31:30.943 回答