Bluemix 可扩展容器组自动恢复选项

Bluemix Scalable Container Group auto recovery option

可扩展组中容器的自动恢复选项如何工作?

我已经启用了它(通过使用 --auto 并且它在网络上显示 Autorecovery: On UI)但是它在今天早上崩溃时没有尝试重新启动容器。 该组中的容器在 2015-09-29T05:51:27.187Z 死亡,并在一个多小时后于 2015-09-29T07:35:33.561Z 手动重启 重新启动容器“解决”了运行时问题(一个正在修复的错误),直到用户尝试在应用程序中再次执行相同的操作导致它崩溃。

根据docs

To start a new container when one of the containers in the group crashes or becomes unavailable, the Enable autorecovery option. If you do not select this option, a new instance is not started automatically.

known problems中列出:

Auto-recovery is not immediate

Auto-recovery for container groups might take more than 15 minutes for new systems to come online. Wait for auto-recovery to become available, which can take more than 15 minutes.

在 IBM Containers 服务中,自动恢复的工作原理是该服务对您在启动容器组时指定的端口执行 http curl。如果该端口不响应 http curl,则该服务假定它需要恢复并将销毁该容器并重新创建它。

对于组中的每个容器,该服务将运行向您在创建组时指定的端口发出curl请求。

如果容器出于任何原因没有响应,则该服务假定需要更换容器。因此它将销毁该容器并在其位置创建一个新容器。

细则

  1. 容器需要 运行在特定端口上响应 HTTP 请求的服务。
  2. 创建容器组时暴露的端口必须与#1中的端口相同。
  3. #1/#2 中的端口必须响应 http 请求,而不是 https 请求。群组的路由(例如https://example.mybluemix.net)是安全的,而且内部从路由到容器的流量也是加密的,所以群组中的容器不需要监听https。
  4. 服务每 2 分钟左右检查一次组中的每个容器。
  5. 大致 如果服务必须在大约 10 分钟内更换组中的每个实例超过 3 次,服务 将停止拆除并从该点向前恢复组中的实例。在 Bluemix 站点上,您可能会看到 Autorecovery 标签从 On 切换到 Off。这是为了防止永无休止的拆解和更换总是崩溃或始终无响应的容器循环。