码迷,mamicode.com
首页 > 其他好文 > 详细

33. docker swarm 集群服务通信 之 RoutingMesh - Ingress 网络

时间:2019-08-23 19:26:55      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:creat   network   tin   font   mangle   网桥   ice   iptable   转发   

1.作用

  当在 任何 一个 swarm 节点去访问 端口服务的时候 会通过 本节点 的 IPVS ( ip virtual service ) 到 真正的 swarm 节点上

  当访问 docker host 3 的 端口 8080 时, 会把 请求转发到 另外两台host 上去 , 然后把 响应返回给用户

技术图片

 

2. 功能

  外部访问的均衡负载

  服务端口被暴露到哥哥swarm节点

  内部通过 IPVS 进行均衡负载

3. 实验

  创建 一个 名为 demo 的 overlay 网络 另外 创建 client service 和 whoami service 服务

    docker network create -d overlay demo

    docker service create --name whoami -p 8000:8000 --network demo -d jwilder/whoami

    docker service create --name client -d --network demo busybox sh -c ‘while true; do sleep 3600; done‘

  将 whoami 服务拓展为 两个容器

    docker service scale whoami=2

  查看 whoami 的运行情况 

    docker service ps whoami

技术图片

  curl 访问 whoami 容器  无论在哪台服务器上

    curl 127.0.0.1:8000技术图片

  查看 iptables 转化的规则  发现 通过 tcp udp 访问 8000 端口 时 转发到 172.18.0.2

    sudo iptables -nL -t nat

技术图片

  在 docker host (任意服务器都行) 上 查看 ip 发现  

技术图片

  查看  docker_gwbridge 的 interface (查看 docker_gwbridge 的 网桥)

    brctl show 

  查看 docker_gwbridge 内 所包含的 容器 (发现 外部请求的数据 发到 ingress-sbox 内了)

    docker network inspect docker_gwbridge

技术图片

  查看并进入 ingress_sbox

    sudo ls /var/run/docker/netns    (查看 ingress 位置)

技术图片

    sudo nsenter --net=/var/run/docker/netns/ingress_sbox  (进入 ingress_sbox)

技术图片

  在 ingress_sbox 内 查看 iptables 

    iptables -nL -t mangle    可看出 发送到 该 ip 地址下的8000 端口的请求被均衡负载掉了 (红框的 MARK 内为负载均衡)

技术图片

  

 

4. 演示 ipvs

  在 docker host 安装 ipvsadm

    sudo yum install -y ipvsadm

  进入 ingress_sbox

    sudo nsenter --net=/var/run/docker/netns/ingress_sbox

  使用 ipvsadmin 查看 请求到 的 有效 ip 地址 及 权重 等信息

技术图片

  查看 docker-node2 内的 whoami 的 网络地址

    docker ps  查询 container id

    docker exec [container id] ip a

技术图片

技术图片

  可以看出 与 ipvsadm ls 能对应上

 

5.总体流程

技术图片

 

    

33. docker swarm 集群服务通信 之 RoutingMesh - Ingress 网络

标签:creat   network   tin   font   mangle   网桥   ice   iptable   转发   

原文地址:https://www.cnblogs.com/zonehoo/p/11401930.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!