Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';docker 1.12中服务的每个容器中绑定vip地址的目的是什么?_Docker - Fatal编程技术网

什么';docker 1.12中服务的每个容器中绑定vip地址的目的是什么?

什么';docker 1.12中服务的每个容器中绑定vip地址的目的是什么?,docker,Docker,Docker使用IPV的NAT模式来实现服务负载平衡,而在NAT模式下,真正的服务器对VIP一无所知 据我所知,VIP仅用于来自不同服务的容器之间的通信,因此它只应出现在iptables的mangle表中。我认为这一点现在(上周2016年8月)在中进行了讨论,其中服务创建中的容器网络最初报告为: 在docker swarm模式下配置的容器可以在服务发现中通过虚拟IP(VIP)访问,并通过docker swarm入口覆盖网络路由。或通过DNS轮robbin(DNSRR) 但他补充说: VIP不在入

Docker使用IPV的NAT模式来实现服务负载平衡,而在NAT模式下,真正的服务器对VIP一无所知


据我所知,VIP仅用于来自不同服务的容器之间的通信,因此它只应出现在iptables的mangle表中。

我认为这一点现在(上周2016年8月)在中进行了讨论,其中服务创建中的容器网络最初报告为:

在docker swarm模式下配置的容器可以在服务发现中通过虚拟IP(VIP)访问,并通过docker swarm入口覆盖网络路由。或通过DNS轮robbin(DNSRR)

但他补充说:

VIP不在入口覆盖网络上。为了使用VIP或DNSRR,您需要创建一个用户定义的覆盖网络。(见附件)

我们不应该将入口(发布端口)与swarm内部覆盖网络混为一谈

查尔斯对VIP在场的说明是()

Docker Engine swarm模式本机支持覆盖网络,因此您可以启用容器到容器网络。
使用swarm模式时,不需要外部键值存储

swarm模式覆盖网络的特点包括:

  • 您可以将多个服务连接到同一网络
  • 默认情况下,服务发现为swarm中的每个服务分配一个虚拟IP地址(VIP)和DNS条目,使其通过服务名称可用于同一网络上的容器
  • 您可以将服务配置为使用DNS循环而不是VIP
使用swarm模式服务发现 默认情况下,当您创建连接到网络的服务时,swarm会为该服务分配一个VIPVIP根据服务名称映射到DNS别名。网络上的容器通过gossip共享服务的DNS映射,因此网络上的任何容器都可以通过其服务名称访问服务

您不需要公开特定于服务的端口,就可以将服务提供给同一覆盖网络上的其他服务。
swarm的内部负载均衡器自动将请求分配给活动任务中的服务VIP

OP坚持认为:


仍然无法获取容器的eth0上附加VIP的原因

嗯:

  • eth0接口表示连接到覆盖网络的容器接口。因此,如果您创建一个覆盖网络,您将拥有与之关联的VIP
  • eth1接口表示连接到
    docker\u gwbridge
    网络的容器接口,用于容器集群外部的外部连接
现在是关于Docker 1.12 swarm模式负载平衡无法持续工作的问题,其中IPVS表没有正确填充


这说明了这些ipv的作用,错误应该在1.12.1-rc1中修复。

Docker论坛上的问题:仍然无法理解为什么VIP连接到容器的eth0…@xdays eth0接口表示连接到覆盖网络的容器接口。因此,如果您创建一个覆盖网络,您将拥有与之关联的VIP。Eth1接口表示连接到
docker\u gwbridge
网络的容器接口,用于容器群集外部连接。但是,将VIP与eth0关联的原因是什么?@xdays很抱歉,我无法在新docker swarmkit中找到有关eth0角色的任何其他信息。如果你有新的意见,请毫不犹豫地在这里发布一个答案。尽管如此,我还是会保持跟踪,并在收到问题后更新我的问题。