33. docker swarm 集群服务通信 之 RoutingMesh - Ingress 网络
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 网络的更多相关文章
- 32. docker swarm 集群服务通信 之 RoutingMesh - internal 网络
1. 两个 service 是如何通信的 通过内置的 DNS 服务发现的功能 相互通信的 2. 创建一个 overlay 的 网络 docker network create -d overlay ...
- Docker Swarm 集群环境搭建及弹性服务部署
上一篇文章<Docker Swarm 集群管理利器核心概念扫盲>中我们把 Swarm 重要的概念性知识给大家讲解了一波,理论完事就该实战了,这篇文章带大家从零开始,搭建 Docker Sw ...
- 云计算之路-阿里云上-容器难容:容器服务故障以及自建 docker swarm 集群故障
3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月 ...
- Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例
目录 [TOC] 1.环境准备 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...
- [转载] Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例
1.环境准备 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0.33 c4 -&g ...
- 通过docker-machine和etcd部署docker swarm集群
本片文章介绍一下 使用docker-machine 搭建docker swarm 集群:docker swarm是docker 官方搭建的容器集群编排工具:容器编排,就是可以使你像使用一太机器一样来使 ...
- 云计算之路-阿里云上-容器难容:优化自建 docker swarm 集群的部署
在上周六遭遇阿里云容器服务 swarm 版的故障之后,我们决定还是走自建 docker swarm 之路,只要不是阿里云底层的问题,我们相信会找到办法解决或避开自建 docker swarm 不稳定的 ...
- docker swarm 集群及可视化界面的安装及配置
docker swarm 集群及可视化界面的安装及配置 2016-12-14 16:08:46 标签:swarm consul registrator 原创作品,允许转载,转载时请务必以超链接形式标明 ...
- Docker Swarm——集群管理
前言 之前在总结docker machine的时候,当时对docker理解还不够深入,甚至还不知道 docker machine 与 docker swarm 的区别. 在查阅资料以及官方文档之后,今 ...
随机推荐
- jsp采用ajax传递数组给后台controller并遍历
ajax传递数组,期间出各种各样的问题,那叫一个头疼,网上各种查,都没有解决,最终摸索摸索加借鉴搞定,不多说,上代码 /* 复选框选定部分 */ $("#delete").clic ...
- 【转】R函数-diag()函数
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/lili_wuwu/article/det ...
- pyinstaller打包PySide2写的GUI程序,调用ffmpeg隐藏CMD控制台解决方案
1 问题描述 使用PySide2写了一个GUI程序,调用ffmpeg命令行工具,做简单的批量视频处理(调整帧宽度.帧高度.视频变速.降低视频码率达到限制视频大小),使用了ffmpeg. ffmpeg- ...
- excel处理经纬度
=LEFT(A1,FIND("°",A1)-1)*1+MID(A1,FIND("°",A1)+1,2)/60+MID(A1,FIND("′" ...
- tomcat和servlet容器的关系
- 实验吧-web-天下武功唯快不破(Python中byte和str的转换)
题目:看看响应头 打开网站,既然已经提示我们看响应头了,那我们就看看呗(习惯bp,也可直接F12查看) 可以看到,响应头部分有个FLAG,而且有提示:please post what you find ...
- hdu 1087 最长上升序列和 dp
Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
- Adobe Photoshop CC2014 for MAC 详细破解步骤
1,安装Adobe Photoshop CC2014 for MAC,可以断网安装,如果不断网的话,需要申请一个Adobe ID,是免费申请. 2,下载破解工具,https://sdifen.ctfi ...
- 【LeetCode】搜索旋转排序数组
[问题]假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在这个 ...
- hostapd 热点设置
一. 需要安装的服务:hostapd dhcp(isc-dhcp-server) dns(dnsmasq或者bind9或者都不装设成8.8.8.8 ) 二.建hostapd.conf文件 ,su ...