什么容器/服务在Docker for Azure中创build外部负载平衡器规则?

Docker for Azure的一个有用function是,当你在容器集群中部署一个swarm服务时,Docker for Azure服务会自动创build一个负载均衡器规则来将公共stream量路由到服务(使用与发布在群服务)。 但是,我们想要改变这些负载平衡器规则的创build方式。 我们需要这样做,以便通过将特定的服务端点映射到特定的公共IP和端口来引入多租户。

为了让我们自定义如何创build负载均衡器规则的行为,我们需要了解Docker4x容器负责创build这些负载均衡器规则,了解它是如何做的,然后创build我们自己的服务版本(如果我们不能重新configuration现有的做我们想要的)。

任何人都可以帮助我们在哪里可以find这些信息?

在Docker论坛上的答案的重复:

执行LBconfiguration的容器是docker4x / l4controller-azure,名称为editions_controller。 在Leader节点上运行的节点检查是否有任何已发布端口的新服务,如果该端口尚不存在于Azure LB中,则会为其configuration规则。 你可以在Infrakit看到这里实现的核心群体轮询逻辑: https : //github.com/docker/infrakit/tree/master/pkg/controller

docker4x / l4controller-azure使用与Docker4Azure中的上述类似的代码,以及服务端口轮询器连接到Azure API以发布Azure LB上的端口。

您还需要停止editions_controller并拥有自己的生效。 为此,您可以简单地执行:swarm-exec docker run -v /var/run/docker.sock:/var/run/docker.sock -v / usr / bin / docker:/ usr / bin / docker -e containername = editions_controller docker4x / stopcontainer:最新