Pivotal Cloud Foundry - 为什么在bind-service之后需要重新启动

时间:2018-01-13 06:37:53

标签: cloud pivotal-cloud-foundry pivotal-web-services pcf bindservice

一旦调用cf bind-service命令,VCAP_SERVICES中的条目似乎就会被添加。如果是这种情况,为什么需要重新启动

3 个答案:

答案 0 :(得分:2)

绑定新服务时,重新启动应用程序是不够的。你必须restage它。

重新启动应用程序会停止您的应用程序,并通过编译新的Droplet并启动它来重新启动它。

通过Starting, Restarting, and Restaging Applications了解更多详情。

还要通过How Applications are staged了解分段生命周期,如何创建和存储Droplet。

答案 1 :(得分:1)

应用程序启动时设置VCAP_SERVICES OS环境变量。启动进程后,无法更改环境变量的值。这就是为什么在执行cf bind-service之后需要重新启动应用程序以查看VCAP_SERVICES的新值

执行cf push时,buildpack会执行,而某些构建包会检查哪些服务已绑定到应用程序,并可能对服务的存在作出反应。例如,如果您已将newrelic服务绑定到应用程序,则buildpack会将newrelic代理安装到cf push创建的dropplet中。这就是为什么在cf bind-service操作之后你应该做cf restage来重新运行buildpack,并通过修改buildpack生成的droplet让它有机会对新绑定服务的存在作出反应。

答案 2 :(得分:1)

将服务绑定到以下应用程序时,将更新VCAP_SERVICES字段。重新启动应用程序时,不会新创建Droplet。因此,您需要重新启动应用程序。 Restaging重新创建Droplet并将其存储在Blobstore中。结果,这些变化得到了反映。