我试图将容器部署到一个由多个节点组成的分布式系统上,最终目标是将每个容器绑定到自己特定的可路由IP地址。这是因为我想为我的码头容器使用硬件负载均衡器,这需要单独的IP地址。
我可以通过使用docker命令行工具来启动在具有多个网络接口(eth0:0 )的服务器上运行的容器,从而实现具有可路由IP地址的容器。eth1,eth2,eth3,等等)它们都有自己的可路由IP地址。然后,每个容器可以使用特定的-p选项将自己附加到其中一个接口的可用IP地址。
例如,如果我想在1.2.3.4上附加一个nginx容器到eth0:2上的IP,我可以使用以下命令来附加它:
docker run -d -p 1.2.3.4:80:80 nginx这方面的限制是,对于每个运行docker的实例,都有一个特定的可路由IP地址池。我的编制工具必须能够只使用来自该池的IP地址,并且只能使用每个IP地址一次。(不要担心扩展问题,可以从openstack管理节点添加更多的IP地址)。
到目前为止,我一直在尝试使用docker群1.12来实现这一点,它使用了docker服务,但是很明显,这并不是该编排工具的预期用例。
因此,我正在寻找一个新的编排工具,可以让我做以下工作:
它还必须提供容器收集工具的一些更常见的方面,例如:
我还应该指出,我的每个服务器也是领事集群的一部分。在我看来,基于我非常具体的网络需求,似乎最好的解决方案是将领事手表、领事健康检查和领事关键价值观(可能使用较早的集装箱化版本的码头群)结合起来管理整个系统,这些价值观在每个运行码头的实例上运行亲自编写的脚本,以确定任何一个服务器应该采取的正确操作。
但是,我宁愿使用一个通用的容器编排工具来实现我的目的。因此,我想知道其他容器编排工具(如mesos、kubernetes、游牧等)是否允许这种级别的对接端口映射定制?还是我最好只是使用自定义领事的健康检查和手表?
还请注意,我是在一个私有openstack云中运行我的系统,在ubuntu14.04服务器上(所以机群不是一种选择)。
发布于 2016-07-18 08:13:59
https://stackoverflow.com/questions/38430827
复制相似问题