Security Cloud foundy-发现没有公共路由的后端应用程序

Security Cloud foundy-发现没有公共路由的后端应用程序,security,service,private,cloud-foundry,discovery,Security,Service,Private,Cloud Foundry,Discovery,我想在CF(run.pivotal.io)上实现微服务体系结构,但在创建私有后端服务时遇到问题 正如我所见,我必须在部署时选择:有路由和无路由 使用route,我的服务将变为公共服务,这对于我的公共站点和公共REST API来说是可以的,但我不希望它用于我的后端服务 没有路由,我不知道如何进行服务发现 我已经发现: 使用VCAP_APPLICATION env变量并在此基础上创建我自己的服务发现(或使用类似Eureka的东西)。这是否总是给我一个有效的IP:端口?无论我的应用程序运行的是哪个DE

我想在CF(run.pivotal.io)上实现微服务体系结构,但在创建私有后端服务时遇到问题

正如我所见,我必须在部署时选择:有路由和无路由

  • 使用route,我的服务将变为公共服务,这对于我的公共站点和公共REST API来说是可以的,但我不希望它用于我的后端服务

  • 没有路由,我不知道如何进行服务发现

  • 我已经发现:

  • 使用VCAP_APPLICATION env变量并在此基础上创建我自己的服务发现(或使用类似Eureka的东西)。这是否总是给我一个有效的IP:端口?无论我的应用程序运行的是哪个DEA,其他DEA上的其他应用程序都可以在此IP:端口上访问它

  • 将我的后端应用程序注册为服务并绑定,而不是使用VCAP_服务。我很想这样做,但只找到了关于在CF之外注册服务的文档。有没有简单的方法将我自己的应用绑定为服务

  • 因此,真正好的是能够将一个应用程序标记为私有,但仍然为其分配主机和域,这样(只有)我的其他应用程序可以通过CF负载平衡器调用它,但它将受到保护,不受公众的影响。

    回答内联

    正如我所见,我必须在部署时选择:有路由和无路由

    这取决于CloudFoundry的安装和配置方式。在PWS上,您不能在应用程序实例之间直接对话。这是安全限制。你必须通过路由器

    使用route,我的服务将变为公共服务,这对于我的公共站点和公共REST API来说是可以的,但我不希望它用于我的后端服务

    在这里,您最好添加应用程序级(或容器级,如果您愿意)安全性,以防止未经授权的访问

    如果不想进行基于密码的身份验证,可以进行基于IP的过滤。在PWS上,我们刚刚添加了一个带有的服务。您可以使用它通过代理发送出站流量,代理将为该流量分配静态IP。然后,您可以将对应用程序的访问限制为仅限于Statica IP

    没有路由,我不知道如何进行服务发现

    如果删除路由,则无法向应用发送流量

    使用VCAP_APPLICATION env变量并在此基础上创建我自己的服务发现(或使用类似Eureka的东西)。这是否总是给我一个有效的IP:端口?无论我的应用程序运行的是哪个DEA,其他DEA上的其他应用程序都可以在此IP:端口上访问它

    您可能需要使用。添加它是为了支持这种类型的部署。然而,这只适用于CloudFoundry安装,其中应用程序实例之间的网络限制已经放宽。通常情况下,不能在实例之间直接对话

    将我的后端应用程序注册为服务并绑定,而不是使用VCAP_服务。我很想这样做,但只找到了关于在CF之外注册服务的文档。有没有简单的方法将我自己的应用绑定为服务


    您可以创建“用户提供”的服务。查看
    cf cups
    命令。它允许您使用任意一组参数和数据创建服务。这可能包含您的服务的URL。创建该服务后,您可以将其绑定到任意数量的应用程序。

    我从Pivotal support获得了一些相关信息。1.VCAP_应用程序信息可用于DEA之间的通信。2.注册为服务仅适用于公共路由,因此无法解决此问题。他们建议注册为公共服务,使用VCAP_服务进行发现,并使用凭据保护服务。我宁愿全世界都不知道它们的存在。