0

在尝试将我在本地 docker Swarm 上运行的应用程序移植到 Azure 容器服务时,我对 Azure 的负载均衡器部分感到震惊。在本地,我有一个在 Swarm Master 上运行的 HAproxy 容器实例和多个运行的 Web 容器。Web 容器刚刚暴露了端口,它们并没有映射到运行它们的机器上。HAproxy 容器已将端口映射到主服务器,并在内部与我的 Web 容器通信以进行负载平衡。这让我可以利用有限数量的 Docker Swarm 运行任意数量的容器。在 azure 容器服务中,我看到 Azure 负载均衡器只会与映射的端口通信,这意味着我只能为每个代理运行 1 个容器,或者我在容器中保留一个内部负载均衡器,

当我的应用程序使用粘性会话时,这不是一个理想的场景。那么显然,微软的声明“Azure 容器中的一切都一样”值得折腾吗?有哪些可用的解决方案,或者我在这里做错了什么?

问候,哈尼特

4

1 回答 1

0

ACS 中的解决方案几乎相同。使用 HAProxy 并让 Azure LB 与之对话。唯一的区别是您不会在主服务器上运行代理,您将让 Swarm 为您将其部署到代理。

你不应该真的在你的主服务器上运行工作负载。例如,如果您受到 DDoS 攻击并且无法访问您的主服务器,您会怎么做。让 Swarm 为您部署代理意味着您还可以让 swarm 监控代理的健康状况。

如果你真的想的话,你可以像现在一样在主服务器上运行代理。解决方案将是相同的,让 Azure LB 像您当前一样提供到代理的公共连接。

于 2017-01-12T01:30:55.537 回答