博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
神奇的 routing mesh - 每天5分钟玩转 Docker 容器技术(100)
阅读量:6228 次
发布时间:2019-06-21

本文共 917 字,大约阅读时间需要 3 分钟。

hot3.png

接上一节案例,当我们访问任何节点的 8080 端口时,swarm 内部的 load balancer 会将请求转发给 web_server 其中的一个副本。

这就是 routing mesh 的作用。

494.png

所以,无论访问哪个节点,即使该节点上没有运行 service 的副本,最终都能访问到 service。

另外,我们还可以配置一个外部 load balancer,将请求路由到 swarm service。比如配置 HAProxy,将请求分发到各个节点的 8080 端口。

498.png

ingress 网络

当我们应用 --publish-add 8080:80 时,swarm 会重新配置 service,我们看看容器都发生了哪些重要变化。

495.png

 

是不是觉得很诧异?之前的所有副本都被 Shutdown,然后启动了新的副本。我们查看一下新副本的容器网络配置。

496.png

容器的网络与 --publish-add 之前已经大不一样了,现在有两块网卡,每块网卡连接不同的 Docker 网络。

实际上:

  1. eth0 连接的是一个 overlay 类型的网络,名字为 ingress,其作用是让运行在不同主机上的容器可以相互通信。

  2. eth1 连接的是一个 bridge 类型的网络,名字为 docker_gwbridge,其作用是让容器能够访问到外网。

497.png

ingress 网络是 swarm 创建时 Docker 为自动我们创建的,swarm 中的每个 node 都能使用 ingress

如果大家对 Docker overlay 网络的原理和实现感兴趣,可以重温前面 Docker 容器网络相关章节。

通过 overlay 网络,主机与容器、容器与容器之间可以相互访问;同时,routing mesh 将外部请求路由到不同主机的容器,从而实现了外部网络对 service 的访问。

那么接下来,service 跟 service 如何通信呢?这将是我们下一节要讨论的内容。

书籍:

1.《每天5分钟玩转Docker容器技术》

2.《每天5分钟玩转OpenStack》

转载于:https://my.oschina.net/u/2397560/blog/1583236

你可能感兴趣的文章
spring-cloud-config的encrypt功能
查看>>
javascript引用类型之Date
查看>>
Fiddler调试(适合修复线上bug和直接调试线上问题)
查看>>
Vue+WebSocket+ES6+Canvas 制作【你画我猜】小游戏
查看>>
Java反射的封装
查看>>
精益 React 学习指南 (Lean React)- 1.1 React 介绍
查看>>
基于Flink的标准SQL操作支持
查看>>
用纯Javascript实现React Native的文件上传
查看>>
通信协议设计要点
查看>>
结构体中的 Lazy 属性探究
查看>>
iOS,Android网络抓包教程之tcpdump
查看>>
听飞狐聊JavaScript设计模式系列01
查看>>
CUBA Studio 8.2 发布,企业级应用开发平台
查看>>
玩转 React 服务器端渲染
查看>>
druid配置数据库连接使用密文密码
查看>>
手把手教你如何新建scrapy爬虫框架的第一个项目(下) ...
查看>>
4月17日云栖精选夜读 | 在阿里做了五年技术主管,我有话想说 ...
查看>>
IoT中的Linux选择
查看>>
Docker Engine v18.09.1 新版本特性解读,全新功能先睹为快(一) ...
查看>>
专家点评《2018 AI自适应教育行业研究报告》:了解国内AI自适应教育,这篇报告是比较全面的窗口 ...
查看>>