在群集模式下使用Docker时,对服务的访问会自动进行负载平衡。对于以主从模式运行的应用程序来说,这是一个问题,因为它们需要准确地访问“#”。主设备,但由于负载均衡器重定向流量,尝试访问主设备可能最终访问从设备。
实施例: 有两个节点M和S以及一个服务部署为具有两个副本的群集模式的Docker堆栈。部署后,在M上运行的任务成为主服务器,在S上运行的任务成为从服务器。 当S上的任务试图访问M上的任务时,S将在一半的情况下到达M并在其余的访问中自己。
直接访问仅适用于任务的网络别名或IP地址,但由于这些更改会重新部署(例如更新映像),因此无法使用别名/ IP。
到目前为止,我找到的唯一解决方案是为每个节点创建一个服务,每个节点只有一个副本。 但是这种方式违背了拥有一个swarm的目的,它可以自动在节点之间分配服务。
有没有办法为某些服务禁用负载平衡或创建别名,可用于访问特定节点上的任务?