docker overlay-networks

内置的Docker overlay网络驱动程序彻底简化了多主机网络中的许多挑战。使用overlay驱动程序,多主机网络是Docker内的顶级原生类,无需外部配置或组件。overlay使用Swarm分布式控制平面在跨大规模集群中提供集中管理,稳定性和安全性。

VXLAN数据平面

该overlay驱动器利用了解耦底层物理网络(容器网络的行业标准VXLAN数据平面底层)。Docker覆盖网络将容器流量封装在VXLAN头中,允许流量穿过物理层2或第3层网络。无论底层物理拓扑是什么,覆盖使网络分段动态且易于控制。使用标准的IETF VXLAN头可以提供标准的工具来检查和分析网络流量。

VXLAN自3.7版以来一直是Linux内核的一部分,Docker使用内核的本机VXLAN功能来创建覆盖网络。Docker覆盖数据路径完全在内核空间中。这导致更少的上下文切换,更少的CPU开销以及应用程序和物理NIC之间的低延迟直接流量路径。

IETF VXLAN(RFC 7348)是一种数据层封装格式,覆盖了第3层网络上的第2层。VXLAN设计用于标准IP网络,并可在共享物理网络基础架构上支持大规模,多租户设计。现有的本地和基于云的网络可以透明地支持VXLAN。

VXLAN被定义为一个MAC-in-UDP封装,将容器二层框架放置在底层IP / UDP头中。底层IP / UDP头提供了底层网络上的主机之间的传输。覆盖是作为参与给定覆盖网络的每个主机之间的点对多点连接存在的无状态VXLAN隧道。由于覆盖层独立于底层拓扑,应用程序变得更加便携。因此,无论是内部部署,开发人员桌面还是在公共云中,网络策略和连接都可以与应用程序一起传输。

在该图中,我们看到覆盖网络上的数据包流。以下是通过共享覆盖网络c1发送c2数据包时发生的步骤:

c1做一个DNS查找c2。由于两个容器位于相同的覆盖网络上,Docker Engine本地DNS服务器解析c2为其覆盖IP地址10.0.0.3。

覆盖网络是L2段,因此c1生成去往MAC地址的L2帧c2。

该帧由overlay网络驱动程序用VXLAN头封装。分布式覆盖控制平面管理每个VXLAN隧道端点的位置和状态,因此它知道c2驻留host-B在物理地址上192.168.0.3。该地址成为底层IP头的目标地址。

封装后封包发送。物理网络负责将VXLAN数据包路由或桥接到正确的主机。

该分组到达网络驱动程序的eth0接口host-B并被解封装overlay。从原来的L2帧c1被传递到c2的eth0接口和多达收听应用程序。

覆盖驱动程序内部架构

Docker Swarm控制平面自动化覆盖网络的所有配置。不需要VXLAN配置或Linux网络配置。当创建网络时,覆盖驱动程序也会自动配置数据平面加密(叠加层的可选功能)。用户或网络运营商只需定义网络(docker network create -d overlay ...)并将容器附加到该网络。

在覆盖网络创建过程中,Docker Engine会为每个主机创建覆盖层所需的网络基础架构。每个重叠以及相关联的VXLAN接口创建一个Linux网桥。Docker Engine只有在连接到该网络的容器在主机上安排时才智能实例化主机上的覆盖网络。这可以防止连接的容器不存在的覆盖网络的蔓延。

在以下示例中,我们创建一个覆盖网络并将容器附加到该网络。然后我们将看到Docker Swarm / UCP自动创建覆盖网络。

在容器内已经创建了两个对应于主机上现在存在的两个桥的接口。在覆盖网络上,每个容器至少有两个接口连接到overlay它们docker_gwbridge。

桥目的

覆盖入口和出口指向VXLAN封装的覆盖网络,并且(可选地)加密在相同覆盖网络上的容器之间的流量。它覆盖所有参与此特定叠加层的主机。主机上的每个重叠子网将存在一个,它将具有与特定覆盖网络相同的名称。

docker_gwbridge用于离开集群的流量的出口网桥。docker_gwbridge每个主机只会存在一个。容器到容器的流量在该桥上被阻塞,允许仅进入/出口流量。

Docker Overlay驱动程序自Docker Engine 1.9以来一直存在,需要外部K / V存储来管理网络的状态。Docker 1.12将控制平面状态集成到Docker Engine中,以便不再需要外部存储。1.12还介绍了几个新功能,包括加密和服务负载均衡。引入的网络功能需要支持它们的Docker Engine版本,并且不支持将旧版本的Docker Engine使用这些功能。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,506评论 15 147
  • 以下原文转载于(https://docs.docker.com/docker-for-mac/)(想找中文版的最新...
    Veekend阅读 7,541评论 0 17
  • 这个题目值得深思。 首先,做为企业的创始人,我们要想清楚一点:你找员工来干什么。如果你只是需要他们来为你打工,那么...
    lilycat阅读 233评论 0 0
  • 昨天,跟妈妈说话,有句话她没听清,我重复好几遍终于大声说了出来,她慢慢的细细的说:“小时候我教你说话的时候都没有这...
    潘西阅读 252评论 0 1
  • 古典专栏16-1《短板已死,优势永生——你从来没有真正理解的木桶原理》读后反思 一、笔记 我们先从常见的几个误区开...
    丹丹自语阅读 500评论 0 1