Docker中Swarm服务发现和负载均衡原理分析
本站在Docker中分享了对Swarm服务发现和负载平衡原理的分析。希望你看完这篇文章有所收获。大家一起讨论一下。Docker利用linux内核iptables和ipvs的功能实现服务发现和负载均衡。Iptables是linux内核中可用的包过滤技术,可以根据数据包的内容对其进行分类、修改和转发。Ipvs是linux内核中可用的传输级负载平衡器。如图所示,我们将在集群中部署“客户端”服务和“投票”服务,其中“投票”服务部署多个副本。所有容器都是默认“docker_gwbridge”网络的一部分。《Docker中Swarm服务发现和负载均衡原理分析》来自互联网同行内容,若有侵权,请联系我们删除!
本站在Docker中分享了对Swarm服务发现和负载平衡原理的分析。希望你看完这篇文章有所收获。大家一起讨论一下。
使用的技术
Docker利用linux内核iptables和ipvs的功能实现服务发现和负载均衡。
Iptables是linux内核中可用的包过滤技术,可以根据数据包的内容对其进行分类、修改和转发。
Ipvs是linux内核中可用的传输级负载平衡器。
准备工作
swarm 集群:
【经理】节点1、【工人】节点2
客户端镜像:
registry.cn-hangzhou.aliyuncs.com/anoy/ubuntu
服务端镜像:
registry.cn-hangzhou.aliyuncs.com/anoy/vote
如图所示,我们将在集群中部署“客户端”服务和“投票”服务,其中“投票”服务部署多个副本。当客户端请求“投票”服务时,输出包含服务器的容器id,这使得演示网络请求更容易。
集群状态
docker服务创建-名称投票-网络覆盖1 -副本2-p 8080:80 registry.cn-hangzhou.aliyuncs.com/anoy/vote
下图显示了沙箱、容器和每个节点网络之间的映射关系:
如图所示,沙箱和投票容器是“入口”网络的一部分,有助于路由网格。客户端容器和投票容器是“重叠1”网络的一部分,这有助于内部负载平衡。所有容器都是默认“docker_gwbridge”网络的一部分。
根据iptables中的nat规则,端口8080上的主机流量被发送到节点1中的沙盒:
一个
2
三
四
五
六
七
八
九
10
11[root @ node 2 ~]# curl node 1:8080 | grep-I ‘ container id“% total % received % xferd average speed time time current load upload total wasted left speed 100 3162 100 3162 0 0 0 7531 0-:-:-3:-:-75466 container id 6173 AFD 5 fab 8处理
[root @ node 2 ~]# curl node 1:8080 | grep-I ‘ container id“% total % received % xferd average speed time time current load upload total wasted left speed 100 3162 100 3162 0 0 0 169k 0-:-:-:-3:-3:-171k container id b07 e 95 C5 c 681处理读取此内容后
原文链接:https://www.jianshu.com/p/dba9342071d8
《Docker中Swarm服务发现和负载均衡原理分析》来自互联网同行内容,若有侵权,请联系我们删除!