Docker中Swarm服务发现和负载均衡原理分析

2022年 10月 16日 发表评论
腾讯云正在大促:点击直达 阿里云超级红包:点击领取
免费/便宜/高性价比服务器汇总入口(已更新):点击这里了解

本站在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

Docker中Swarm服务发现和负载均衡原理分析

如图所示,我们将在集群中部署“客户端”服务和“投票”服务,其中“投票”服务部署多个副本。当客户端请求“投票”服务时,输出包含服务器的容器id,这使得演示网络请求更容易。

集群状态

docker服务创建-名称投票-网络覆盖1 -副本2-p 8080:80 registry.cn-hangzhou.aliyuncs.com/anoy/vote

下图显示了沙箱、容器和每个节点网络之间的映射关系:

Docker中Swarm服务发现和负载均衡原理分析

如图所示,沙箱和投票容器是“入口”网络的一部分,有助于路由网格。客户端容器和投票容器是“重叠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

小咸鱼

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: