如何优雅地在mesos马拉松中进行滚动部署

jhdbpxl9  于 2021-06-26  发布在  Mesos
关注(0)|答案(2)|浏览(473)

当前,如果使用mesos marathon框架部署新版本的docker映像,则具有旧映像的容器将获得sigterm,3秒后将获得sigkill并立即终止。
如果我们将框架与marathon lb(haproxy Package 器)集成,这些容器将继续循环(haproxy继续向其发送流量),直到触发下一个运行状况检查(它发生在haproxy可配置的内部)。因此,在该时间间隔内发送到这些容器的所有请求最终都将得到5xx。因此,有没有一个解决办法,以采取从马拉松磅的容器旋转前sigkill。
即使将运行状况检查间隔设置为3秒,也不能保证正常部署,因为在下一次运行状况检查和marathon向容器发送sigkill的3秒之间可能存在竞争条件,并且当后端节点数增加时,将运行状况检查间隔设置为1秒是不可能的。有没有其他方法可以达到这个目的?

5t7ly7z5

5t7ly7z51#

您可以查看marathon文档中的蓝绿色部署页面:
https://mesosphere.github.io/marathon/docs/blue-green-deploy.html

jc3wubiy

jc3wubiy2#

有3种选择适合你。
正如@tobi所提议的,看看蓝绿马拉松的部署。
你可以增加 executor_shutdown_grace_period 或者将haproxy healtcheck间隔缩短(如您所述,这不是您的选择)为优美周期的两倍。
有点黑客,但你的应用程序可以注销haproxy本身当得到sigterm。

相关问题