CloudFoundry应用程序打开两个端口

kko*_*rad 4 cloud-foundry

我有一个CF应用程序打开两个端口.AFAIK CF只能为其中一个创建路由 - 到位于VCAP_APP_PORT或中的路由PORT.如何创建到第二个端口的路由?我不介意将其他名称指向其他端口.

crh*_*ino 5

目前,Cloud Foundry上的应用程序无法将两个端口映射到其容器环境中.作为新迭代运行时的一部分,已经公开了多个端口映射,但目前还没有通过API提供.

根据您的需要,您可以查看使用Diego运行时的Lattice.有些文档可以在这里找到.


Max*_*Max 5

正如其他一些评论中所述,现在可以在 CF 中为您的应用程序使用多个端口。CF 文档中有一个章节介绍了如何执行此操作。我按照说明操作,但仍然无法完全理解它,这就是为什么我在此处提供分步指南和一些解释(将 [] 中的所有变量替换为实际值):

  1. 配置您的应用程序以侦听多个端口。在我来说,我配置了一个春天启动的应用程序,以在8080端口侦听HTTPS请求,并在HTTP请求(如描述用于调用执行端点像健康/普罗米修斯端口8081这里)。这意味着我在 CF 中配置了一个 TCP 路由和一个 HTTP 路由,并将这些路由映射到 CF 应用程序。
  2. 获取应可在多个端口上访问的 CF 应用程序的 [APP_GUID]: cf app [APP_NAME] --guid
  3. 将端口(例如 8080、8081)添加到 CF 应用程序: cf curl /v2/apps/[APP_GUID] -X PUT -d '{"ports": [8080, 8081]}'
  4. 现在还必须调整指向 CF 应用程序的路由(例如,在这种情况下是 HTTP 路由),以便它指向正确的 CF 应用程序端口。首先,您需要获取路线信息,您可以使用 cf curl /v2/routes?q=host:[HOST_NAME]或使用cf curl /v2/apps/[APP_GUID]/routes并保存指向您的应用程序的路线的 guid ([ROUTE_GUID])。
  5. 对于这条特定路线,您必须调整路线映射。每个 CF 路由可以有多个路由映射。您可以显示当前的路由映射使用此命令的路线:cf curl /v2/routes/[ROUTE_GUID]/route_mappings。随着cf curl /v2/route_mappings -X POST -d '{"app_guid": "[APP_GUID]", "route_guid": "[ROUTE_GUID]", "app_port": 8081}'您添加映射到一个途径(如这里8081)。
  6. 该路由现在有两个映射,一个指向 8080,一个指向 8081。如果您希望路由仅指向其中一个端口(例如 8081),您必须删除与您不想拥有的端口的映射。运行cf curl /v2/routes/[ROUTE_GUID]/route_mappings以显示所有路由映射。然后提取应该删除的路由映射的 guid(例如到端口 8080 的那个)。最后,运行cf curl /v2/route_mappings/[GUID_ROUTE_MAPPING] -X DELETE删除不需要的路由映射。

现在,当使用新配置的路由时,您的 CF 应用程序应该可以在 8080 以外的另一个端口上访问。