绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Docker 1.12.0 改进了服务的负载均衡参数
2020-05-13 15:39:20

在新发布的 1.12.0 版本中,当在 集群中启动服务时,Docker 通过 DNS 和 IP 虚拟服务器(IPVS)为服务的负载均衡引入了新的参数。


新版 Docker 引入了内置的 DNS 服务器,当启动一个容器时,可以通过它使用 --net-alias 参数来为容器的 IP 地址映射别名。

这个特性 从 1.10 后就可使用。从  1.11 版本之后,Docker 也支持了基于循环 DNS 的负载均衡。


在基于 DNS 的负载均衡中,一个服务的名称(别名)会被映射到多个 IP 地址。在这样的情形下,服务其实是运行在容器的 IP 地址背后。

当进行 DNS 查询时,DNS 服务器将会响应多个 IP 地址,同时,它也会打乱返回的 IP 地址的顺序,这使得从不同客户端发送的请求将会命中不同的 IP。

但必须通过手动映射一个别名到多个容器的 IP 地址才能实现循环负载均衡。



在 1.12.0 版本中,Docker添加了内置的对于服务的负载均衡的支持,原理是使用了称为 IPVS 的 Linux 特性。

使用 Docker 的集群引擎,一个服务可以通过命令行和必须的数个复制品(容器)来声明。再也不用为服务手动地指定别名。

在内部,该服务的 DNS 名称被映射到了一个虚拟 IP(VIP),在这里这个特性与 IPVS 联系了起来。当进行 DNS 查找时,VIP 将被返回。


IPVS 是一个  Linux 内核特性,它可以使得第四层(传输层) TCP/UDP 流量 被转发到后端服务器。

它是基于网络过滤模块的,其形成了在 Linux 内核中的包过滤和网络地址转换实现的基础。


当一个服务请求到达了 VIP,它会被转发到一个托管服务的后端容器中。

通过这样的方式,流量会被均匀地分发到容器之中。

这种负载均衡服务的方式和  Consul 非常相似,它是服务发现软件。Consul 也提供一个 DNS 服务器,它可以在每次查询完成时 返回多个 IP 地址。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Docker 专区
创建时间:2020-05-08 10:53:18
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 小雨滴
    专家
戳我,来吐槽~