我正在尝试了解内置 Docker 负载平衡/VIP 如何与覆盖网络配合使用。为了更好地解释我对此的理解,我制作了一个图表。我希望有人可以确认或否定我的理解。
假设我在 Docker Swarm 中运行了两个服务:webserver
和api
。这两个服务都已扩展到两个实例。这些实例运行在节点A和节点B。
- 世界上有人提出了一个请求,不知何故节点A。
iptables
在节点A请求将DNAT
发送到 ingress-sbox节点A。- (我们
ingress-sbox
就把它看作一个黑盒子吧)决定请求应该发送到节点B。 - 将
ingress-sbox
请求发送到“api”覆盖网桥,然后请求通过隧道路由vxlan
到节点B。 - Web 服务器容器节点B通过“api”覆盖网络桥接收请求。
这是对于传入请求如何穿越覆盖网络的合理理解吗?
...还有一个后续问题:当请求通过负载均衡器 ( ) 从webserver
到 时会发生什么。请求是否始终通过与请求来源相同的主机上的 进行负载平衡?如果是这种情况,我假设这意味着对服务 VIP 的请求始终被路由到在发出请求的同一节点上运行的 ?api
ingress-sbox
ingress-sbox
ingress-sbox