当前位置: 代码迷 >> 综合 >> 【Docker Network 2】 Docker Swarm overlay
  详细解决方案

【Docker Network 2】 Docker Swarm overlay

热度:89   发布时间:2024-01-30 05:48:28.0

在docker 1.12 之后,可以直接使用Swarm,无需再进行安装。

从上一节中看到 docker network ls 命令只会显示3种网络模式。

先简单介绍Swarm 的命令

swarm init 在管理节点上创建一个节点

 swarm join  加入一个新的节点到已有集群

    docker swarm join-token worker  查看加入一个worker到集群的命令

    docker swarm join-token manager 查看一个加入manager到集群的命令

swarm update 更新一个Swarm集群

swarm leave 离开一个Swarm集群

 

当我们使用docker swarm init 后,使用docker network ls 会发现多了两个网络模式。

同时会发现宿主机多了一个bridge设备 docker_gwbridge 

    使用docker network inspect 来查看这个网络的属性  

 Internal: 内部模式,禁止外部对所创建的网络的访问

enable_icc 是否允许该网桥上的容器内部通信

enable_ip_masquerade: 是否允许进行地址伪装,即通过iptables 进行snat,只有为true的时候,才能访问外网。且net.ipv4.ip_forward=1 。这个配置是docker服务级别的。默认docker服务启动的时候,会把forward属性打开。

 

我们还看到ingress这个网络的driver是overlay,但是我们没有看到任何关于这个网络的设备。我们首先用docker network inspect 来查看属性

我们这里记住这个id

然后我们来看下docker的network namespace有没有变化 .

  我们发现有个netns的名称跟ingress网络的id有关的(1-<ingressID>)

 这时候我们进入这个netns,然后看这个netns有什么设备

  

我们发现这个netns内部有个br0网桥,同时还有vxlan类型的网卡,这个网卡就是VTEP ,来封装和解封 vxlan的包。

接下来,我们使用docker service 创建一个service(ingress 网络的attach属性为false,即我们无法直接使用该网络)

 

待续...

参考: https://www.jianshu.com/p/3b9389084701

 

   

 

 

 

 

 

 

 

 

   

 

 

 

 

 

 

 

  相关解决方案