外部F5负载均衡器与Docker群集服务发现的集成

我打算为我的应用程序使用docker swarm模式来托pipe。 目前正在想出一种将F5负载均衡器与Docker群模式服务发现相结合的方式。 有没有一个用例来实现这个? 我知道我们可以发布主机和路由stream量的端口,从F5主机IP,但这将限制我只运行每个主机的任务。

我可以使用Consul作为服务发现,并有服务的主机名,所以我将有一个绑定DNS设置转发DNS请求到领事?

意见/build议非常感谢。

提前致谢。

不知道更多关于您的预期应用程序,如果我使用服务发现VIP而不是DNSRR,我会把每个广告的VIP作为BIG-IP VIP背后的节点。 这样,您可以使用BIG-IP的iControlREST来添加/修改/删除节点,因为它们在Swarm的服务发现中启动。

curl -sk -u 'admin:admin' -H "Content-Type: application/json" -X POST https://xxxx/mgmt/tm/ltm/pool -d '{"name":"test-pool","members":[{"name":"Server-Bob:443","address":"10.0.0.1"}]}'示例: curl -sk -u 'admin:admin' -H "Content-Type: application/json" -X POST https://xxxx/mgmt/tm/ltm/pool -d '{"name":"test-pool","members":[{"name":"Server-Bob:443","address":"10.0.0.1"}]}'curl -sk -u 'admin:admin' -H "Content-Type: application/json" -X POST https://xxxx/mgmt/tm/ltm/pool -d '{"name":"test-pool","members":[{"name":"Server-Bob:443","address":"10.0.0.1"}]}'

使用上面的想法,你将有一个通过BIG-IP发布的应用程序,并且你可以通过Ansible / Python / Whatever添加/移除Docker服务发现的VIP。

你可以使用Consul进行服务发现,但是我想你会创build多余的函数,因为Swarm可以完成类似的发现任务。 添加绑定DNS要求不会使pipe理变得更容易。 从技术上讲,有很多方法可以做到这一点,但如果您已经build立了BIG-IP基础架构,那么这对我来说是最有意义的。 如果我在你的应用程序需求中丢失了一些东西,请告诉我,我可以修改我的答案。