『中级篇』RoutingMesh之Ingress负载均衡(48)

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!

原文链接地址:『中级篇』RoutingMesh之Ingress负载均衡(48)

当创建或更新一个服务时,你可以利用--publish选项把一个服务暴露到外部,在docker swarm模式下发布一个端口意味着在集群中的所有节点都会监听这个端口,这时当访问一个监听了端口但是并没有对应服务运行在其上的节点会发生什么呢?

  1. 接下来就该我们的路由网(routing mesh)出场了,路由网时docker1.12引入的一个新特性,它结合了IPVS和iptables创建了一个强大的集群范围的L4层负载均衡,它使所有节点接收服务暴露端口的请求成为可能。当任意节点接收到针对某个服务暴露的TCP/UDP端口的请求时,这个节点会利用预先定义过的Ingress overlay网络,把请求转发给服务对应的虚拟IP。ingress网络和其他的overlay网络一样,只是它的目的是为了转换来自客户端到集群的请求,它也是利用我们前一小节介绍过的基于VIP的负载均衡技术。
  2. 当启动服务时,你可以为你的应用创建一个外部的DNS服务,并把它映射到你集群的任意节点或者是所有节点,你无需担心你的容器具体运行在那个节点上,因为有了路由网这个特性后,你的集群看起来就像是单独的一个节点一样。

上面这个图表明了路由网是怎么工作的:

  • 服务(app)拥有两份复制,并把端口映射到外部端口的8000 路由网在集群中的所有节点上都暴露出8000
  • 外部对服务app的请求可以是任意节点,在本例子中外部的负载均衡器将请求转发到了没有app服务的主机上
  • docker swarm的IPVS利用ingress overlay网路将请求重新转发到运行着app服务的节点的容器中

PS:负载均衡解决了单一入口负载到多个容器上问题, 但是由于容器调度之后可能落到多个机器上, 假如某些主机上面没有工作的容器,而对外服务时候又希望服务可以被访问, Routing Mesh概念引入是解决多个入口点负载到单个容器的问题。


原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

使用GitHub搭建个人博客

今年使用GitHub搭建了自己的博客:kaze2017.com 我整理了一下搭建博客的过程,分为购买域名、准备环境、Git和GitHub、搭建博客、绑定域名、感...

32210
来自专栏七夜安全博客

百度云满速下载-无需账号不封号

18.5K4
来自专栏黑泽君的专栏

linux命令 uname -r 和 uname -a 的解释与演示

1、uname -r : 显示操作系统的发行版号 2、uname -a :显示系统名、节点名称、操作系统的发行版号、内核版本等等。

2771
来自专栏Laoqi's Linux运维专列

LVS三种模式详解 – DR

3506
来自专栏落花落雨不落叶

文档模式小记

3406
来自专栏CSDN技术头条

NoSQL数据库的主主备份

Tarantool DBMS的高性能应该很多人都听说过,包括其丰富的工具套件和某些特定功能。比如,它拥有一个非常强大的on-disk存储引擎Vinyl,并且知道...

22810
来自专栏BestSDK

微软发布 Windows 10 SDK build 15042

微软向开启了快速更新的 PC 平台开发者们推送了 Windows 10 SDK build 14046 预览版本,带来了一些微小的新特性。 ? 微软表示该 SD...

3014
来自专栏编程一生

漫画:性能、可用性和锁

1444
来自专栏我是攻城师

从App的角度看进程和线程

在现在人人都有一部手机或电脑的年代,我们几乎天天都在使用各种app,如微信,QQ,抖音,优酷等等软件,表面上我们是与各种app交互,但如果站在操作系统的角度来看...

612
来自专栏IT技术精选文摘

一文了解Zookeeper

相信大家对 ZooKeeper 应该不算陌生。但是你真的了解 ZooKeeper 是个什么东西吗?如果别人/面试官让你给他讲讲 ZooKeeper 是个什么东西...

1743

扫码关注云+社区

领取腾讯云代金券