【问题标题】:Bluemix Scalable Container Group auto recovery optionBluemix Scalable Container Group 自动恢复选项
【发布时间】:2015-09-29 08:47:57
【问题描述】:
可扩展组中容器的自动恢复选项如何工作?
我已启用它(通过使用 --auto 并在 Web UI 中显示 Autorecovery: On),但它在今天早上崩溃时没有尝试重新启动容器。
该组中的容器在 2015-09-29T05:51:27.187Z 死亡,并在一个多小时后在 2015-09-29T07:35:33.561Z 手动重启
重新启动容器“解决”了运行时问题(一个正在修复的错误),直到用户尝试在应用程序中再次尝试相同的东西使其崩溃。
根据docs:
要在组中的某个容器崩溃或不可用时启动新容器,请启用自动恢复选项。如果不选择此选项,则不会自动启动新实例。
上市known problems:
不会立即自动恢复
容器组的自动恢复可能需要超过 15 分钟才能使新系统上线。等待自动恢复可用,这可能需要 15 分钟以上。
【问题讨论】:
标签:
ibm-cloud
linux-containers
【解决方案1】:
对于组中的每个容器,服务将针对您在创建组时指定的端口运行curl 请求。
如果容器由于某种原因没有响应,则服务会假定需要更换容器。因此它将销毁该容器并在其位置创建一个新容器。
细则
- 容器需要运行响应特定端口上的 http 请求的服务。
- 您在创建容器组时公开的端口必须与#1 中的端口相同。
- #1/#2 中的端口必须响应 http 请求,不是 https 请求。该组的路由(例如
https://example.mybluemix.net)是安全的,并且从路由到容器的内部流量也被加密,因此组中的容器不需要监听https。
- 该服务每 2 分钟左右检查一次组中的每个容器。
-
大致如果服务必须在大约 10 分钟的时间内替换组中的每个实例超过 3 次,则服务将从那时起停止拆除和恢复组中的实例。在 Bluemix 站点上,您可能会看到 Autorecovery 标签从 On 切换到 Off。这是为了防止永远崩溃或始终无响应的容器的不断拆卸和更换循环。
【解决方案2】:
在 IBM Containers 服务中,自动恢复通过服务对您在启动容器组时指定的端口执行 http curl 来工作。如果该端口不响应 http curl,则服务假定它需要恢复,并将销毁该容器并重新创建它。