我们可以在 Pivotal Cloud Foundry 的不同空间使用相同的主机名和域吗?
Can we use same hostname and domain in different spaces in Pivotal Cloud Foundry?
我们的组织有许多面向 public 的 Web 门户正在迁移到 PCF。作为其中的一部分,有多个团队在一个组织下构建,为托管在同一 DNS 域下的应用程序工作,例如 test.domain.com
。
现在,假设我们有两个团队在 Org1 下的 Space1 和 Space2 中开发和部署代码。这两个团队都需要在 test.domain.com
下托管他们的应用程序。我们面临的问题是,如果 test.domain.com
在 PCF Space 1 中创建为共享域,则在 Space2 上不允许相同的组合。 space 中的主机不能相同。所以现在我们需要为我们需要在不同 space 中创建的每个路由附加一个唯一的主机。
- Space1:
app1-test.domain.com/app1-path/abc
- Space2:
app2-test.domain.com/app2-path/xyz
我希望被允许的是:
- Space1:
test.domain.com/app1-path/abc
- Space2:
test.domain.com/app2-path/xyz
有什么方法可以在 PCF 中实现这种行为吗?
这可行,但前提是您的域是私有域。如果您的管理员创建了共享域,则您将无法执行此操作。
例如:
$ cf create-domain dmikusa test.example.com
Creating domain test.example.com for org dmikusa as dmikusa@pivotal.io...
OK
$ cf domains
Getting domains in org dmikusa as dmikusa@pivotal.io...
name status type details
cfapps.io shared
cf-tcpapps.io shared tcp
apps.internal shared internal
test.example.com owned
$ cf create-route team-1 test.example.com --path foo
Creating route test.example.com/foo for org dmikusa / space team-1 as dmikusa@pivotal.io...
Route test.example.com/foo has been created.
OK
$ cf create-route team-2 test.example.com --path bar
Creating route test.example.com/bar for org dmikusa / space team-2 as dmikusa@pivotal.io...
Route test.example.com/bar has been created.
OK
如果您在共享域上尝试同样的事情,它将失败。
$ cf create-route team-1 cfapps.io --hostname my-super-cool-app --path foo
Creating route my-super-cool-app.cfapps.io/foo for org dmikusa / space team-1 as dmikusa@pivotal.io...
Route my-super-cool-app.cfapps.io/foo has been created.
OK
$ cf create-route team-2 cfapps.io --hostname my-super-cool-app --path foo
Creating route my-super-cool-app.cfapps.io/foo for org dmikusa / space team-2 as dmikusa@pivotal.io...
The path is taken: /foo
FAILED
文档中有关于此的脚注 the bottom of this section:
Note: Routes with the same domain and hostname but different paths can only be created in the same space. Private domains do not have this limitation.
我们的组织有许多面向 public 的 Web 门户正在迁移到 PCF。作为其中的一部分,有多个团队在一个组织下构建,为托管在同一 DNS 域下的应用程序工作,例如 test.domain.com
。
现在,假设我们有两个团队在 Org1 下的 Space1 和 Space2 中开发和部署代码。这两个团队都需要在 test.domain.com
下托管他们的应用程序。我们面临的问题是,如果 test.domain.com
在 PCF Space 1 中创建为共享域,则在 Space2 上不允许相同的组合。 space 中的主机不能相同。所以现在我们需要为我们需要在不同 space 中创建的每个路由附加一个唯一的主机。
- Space1:
app1-test.domain.com/app1-path/abc
- Space2:
app2-test.domain.com/app2-path/xyz
我希望被允许的是:
- Space1:
test.domain.com/app1-path/abc
- Space2:
test.domain.com/app2-path/xyz
有什么方法可以在 PCF 中实现这种行为吗?
这可行,但前提是您的域是私有域。如果您的管理员创建了共享域,则您将无法执行此操作。
例如:
$ cf create-domain dmikusa test.example.com
Creating domain test.example.com for org dmikusa as dmikusa@pivotal.io...
OK
$ cf domains
Getting domains in org dmikusa as dmikusa@pivotal.io...
name status type details
cfapps.io shared
cf-tcpapps.io shared tcp
apps.internal shared internal
test.example.com owned
$ cf create-route team-1 test.example.com --path foo
Creating route test.example.com/foo for org dmikusa / space team-1 as dmikusa@pivotal.io...
Route test.example.com/foo has been created.
OK
$ cf create-route team-2 test.example.com --path bar
Creating route test.example.com/bar for org dmikusa / space team-2 as dmikusa@pivotal.io...
Route test.example.com/bar has been created.
OK
如果您在共享域上尝试同样的事情,它将失败。
$ cf create-route team-1 cfapps.io --hostname my-super-cool-app --path foo
Creating route my-super-cool-app.cfapps.io/foo for org dmikusa / space team-1 as dmikusa@pivotal.io...
Route my-super-cool-app.cfapps.io/foo has been created.
OK
$ cf create-route team-2 cfapps.io --hostname my-super-cool-app --path foo
Creating route my-super-cool-app.cfapps.io/foo for org dmikusa / space team-2 as dmikusa@pivotal.io...
The path is taken: /foo
FAILED
文档中有关于此的脚注 the bottom of this section:
Note: Routes with the same domain and hostname but different paths can only be created in the same space. Private domains do not have this limitation.