目前,如果使用mesos-马拉松框架部署新版本的docker映像,则具有旧映像的容器将获得SIGTERM,3秒后将得到SIGKILL并立即终止。
如果我们将框架与马拉松-lb(haproxy包装器)集成,这些容器继续处于旋转状态(haproxy继续向其发送通信量),直到触发下一个健康检查(它发生在由haproxy进行内部可配置的内部)。因此,在这段时间内发送到这些容器的所有请求最终都将得到5XX。那么,在SIGKILL之前,是否有办法将容器从马拉松-lb中分离出来。
即使将健康检查间隔设置为3秒,也无法保证良好的部署,因为下一次健康检查与马拉松将SIGKILL发送到容器的3秒之间可能存在竞争条件,而且当后端节点数量增加时,将健康检查间隔设置为1秒是不可能的。还有其他方法可以做到这一点吗?
发布于 2016-05-31 09:22:21
有三个选项可以为您工作。
executor_shutdown_grace_period或减少(正如您所提到的,这不是您的一个选项),您可以将代理健康检查间隔缩短两倍于优美周期。发布于 2016-05-31 08:57:49
您可能会看到马拉松文档中的蓝绿色部署页面:
https://stackoverflow.com/questions/37530747
复制相似问题