小编给大家分享一下码头工人中群服务发现和负载均衡原理分析,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
<强>使用的技术强>
码头工人使用了linux内核iptables和ipv的功能来实现服务发现和负载均衡。
iptables是linux内核中可用的包过滤技术,它可用于根据数据包的内容进行分类,修改和转发决策。
ipv是linux内核中可用的传输级负载均衡器。
<强>准备工作强>
<>强群集群:强>【管理】node1,【工作】node2
<强>客户端镜像:强> registry.cn-hangzhou.aliyuncs.com/anoy/ubuntu
<强>服务端镜像:强> registry.cn-hangzhou.aliyuncs.com/anoy/vote
如图所示,我们将在群集群中部署“客户端”服务和“投票”服务,其中“投票”服务部署多个副本。客户端请求“投票”服务时,输出结果中包含服务端的容器id,这样就更方便演示网络请求。
<强>集群状态强>
码头工人服务创建名称投票——网络overlay1,副本2 - p 8080:80 registry.cn-hangzhou.aliyuncs.com/anoy/vote
下图显示了沙箱,容器和每个节点的网络之间的映射关系:
如图所示,沙箱和投票容器是“ingress"网络的一部分,它有助于路由网格.client容器和投票容器是“overlay1"网络的一部分,它有助于内部负载均衡。所有容器都是默认“docker_gwbridge"网络的一部分。
遵循iptables中的nat规则显示,端口8080上的主机流量发送到node1里的沙盒:
1 2 3. 4 5 6 7 8 9 10 11 <代码类=捌皆皆? [root@node2 ~] #卷发node1:8080 | grep - i“容器id" 代码> <代码类=按靠占洹?,代码> <代码类=捌皆皆? % total %获得% xferd平均speed time time ,当前时间代码> <代码类="纯空间">,,,,,,,,,,,,,,,,,代码> <代码类=捌皆皆? dload upload total spent 离开速度代码> <代码类=捌皆皆? 100 3162 100 3162,0,,0,7531年,,0 -:-:- - - - - - - -:- - - - -:-:- 7546 代码> <代码类=按靠占洹?,,,,,代码> <代码类=捌皆皆?处理容器id 6173 afd5fab8> 代码 ,<代码类=捌皆皆? [root@node2 ~] #卷发node1:8080 | grep - i“容器id" 代码> <代码类=按靠占洹?,代码> <代码类=捌皆皆? % total %获得% xferd平均speed time time ,当前时间代码> <代码类="纯空间">,,,,,,,,,,,,,,,,,代码> <代码类=捌皆皆? dload upload total spent 离开速度代码> <代码类=捌皆皆? 100 3162 100 3162,0,,0,169 k ,0 -:-:- - - - - - - -:- - - - -:——:—171 k 代码> <代码类=按靠占洹?,,,,,代码> <代码类=捌皆皆?处理容器id b07e95c5c681 代码>看完了这篇文章,相信你对“码头工人中群服务发现和负载均衡原理分析”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
原文链接:https://www.jianshu.com/p/dba9342071d8