两台机器和dockernetworking零停机部署

是否可以使用两个Amazon EC2实例连接一个小的零宕机部署(* 1)? 我想定期将我的服务转到新的EC2实例,以避免在实例本身上手动更新操作系统。

EC2-1:应用程序服务

EC2-2:数据库,dockernetworking的领事登记

EC2-1将是唯一的公共实例(绑定到Amazon Elastic IP)。 不应该是一个复制这个问题,并将弹性IP更改为新的EC2实例的问题,对吧?

但是,我不知道是否有可能将EC2-2切换为docker服务器将dockernetworking设置存储在consul数据库中。 我可以启动该实例的副本并告诉docker它现在应该使用新的consul实例进行联网吗?

(* 1)在两个实例出现实例故障等情况下,您不能保证零停机时间。 我的意思是在转移到新的EC2实例时零停机时间:)

在1.12版本的Docker Swarm中,为了达到零停机时间,至less需要3个。而在过去的高可用性安装中,当心跳失败时,一个节点接pipe主存储和共享HA存储,Docker传统上使用大多数或法定模型。 一旦您向大多数节点推送写入信息,当您从大多数节点读取信息时,您可以放心地获得该内容的最新版本。

在3个Swarm集群中,您可以让一个节点停下来,仍然有大部分可用于仲裁的节点。 请注意,您仍然需要一个可以在每个级别以多个实例运行的应用程序,以便如果任何一个节点closures,应用程序已经在另一个节点上运行,以处理stream量。

推荐的设置是在一个集群中有5个节点。 这可以让一个人进行定期维护,第二个节点意外失败,而不会失去法定人数。