我已经建立了一个 docker swarm 模式集群,有两个经理和一个工人。这是在 Centos 7 上。它们在机器 dkr1、dkr2、dkr3 上。dkr3 是工人。
前几天我正在升级到 v1.13,并且想要零停机时间。但它并没有完全按预期工作。我正在尝试找出正确的方法,因为这是拥有集群的主要目标之一。
群处于“全局”模式。也就是说,每台机器一个副本。我的升级方法是排空节点,停止守护进程,yum 升级,启动守护进程。(请注意,这会清除我的 ExecStart=... 的守护程序配置设置! 升级时要小心。)
我们的客户端/ESB 访问 dkr2,它在 swarm 上执行负载平衡魔法。dkr2 是领导者。dkr1 是“可达的”
我放下了dkr3。没有问题。升级的码头工人。把它带回来了。没有因打倒工人而造成的停机时间。
打倒了dkr1。一开始没有问题。当我把它放下时还在工作。升级的码头工人。把它带回来了。但在启动过程中,它 404'ed。一上来就OK了。
下架了dkr2。我没有真正记录当时发生的事情,对不起。
无论如何,当我的应用程序在 dkr1 上启动时,它 404'ed,因为服务器尚未启动。
知道我可能做错了什么吗?我想我需要某种健康检查,因为容器显然没问题,但服务器还没有响应。所以那是我停机的时候。