manager node balance可以代替nginx吗?

问题描述 投票:0回答:1

目前我有简单的设置 nginx 服务器,它指向另一个运行 docker 容器的服务器

我想转移到 docker swarm 模式,但我不确定我是否理解正确。 我想添加具有 2 台服务器的集群。1 名经理一名工人 我是否必须将 nginx 设置为指向将平衡的管理器节点? 或者管理节点不做平衡? 设置会是那样吗?

docker-swarm
1个回答
0
投票

好的。首先,通过将 docker swarm 分成 2 个节点,您并没有真正获得任何好处——Docker swarm 使用 raft 共识,这需要严格多数,这意味着您至少需要 3 个节点才能实现任何类型的高可用性。如果你失去了管理器节点,工作节点无论如何都会取消它的所有工作。

因此,您可以在不关心高可用性的情况下运行非常小的集群(1 或 2 个节点)。只需让两个节点都成为管理者,不要试图将任务隔离到工作人员身上。

您的最低 HA 包含一个 3 节点群:- 让所有 3 个节点成为管理器,并只在管理器上安排工作负载。您可以向其中添加工作节点,一旦您拥有 2 或 3 个工作节点,您就可以考虑向您的服务添加约束以确保它们仅在工作节点上运行。


Docker swarms 入口路由确保外部服务可以连接到任何 swarm 节点上的已发布端口,并且它将被路由到某个节点上的服务任务。

这意味着你可以直接使用 docker swarm 作为它自己的负载均衡器,如果你想使用外部负载均衡器,那么你需要告诉你的服务以主机模式发布它的端口,这样 docker 就不会负载均衡那个端口,并且使用放置约束和副本来确保服务在所有 docker 节点上运行任务。然后你的外部负载均衡器可以在调度任务的集群节点之间进行负载均衡。

© www.soinside.com 2019 - 2024. All rights reserved.