为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。
对计算机网络或者 Kubernetes 网络稍有了解的工程师都应该听说过延展网络(Overlay Network),Overlay 网络其实并不是一门新技术,它是指构建在另一个网络上的计算机网络[^1],这是一种网络虚拟化技术的形式,近年来云计算虚拟化技术的演进促进了网络虚拟化技术的应用[^2]。
图 1 - 延展网络
因为 Overlay 网络是建立在另一个计算机网络之上的虚拟网络,所以它不能独立出现,Overlay 底层依赖的网络就是 Underlay 网络,这两个概念也经常成对出现。
Underlay 网络是专门用来承载用户 IP 流量的基础架构层,它与 Overlay 网络之间的关系有点类似物理机和虚拟机。Underlay 网络和物理机都是真正存在的实体,它们分别对应着真实存在的网络设备和计算设备,而 Overlay 网络和虚拟机都是依托在下层实体使用软件虚拟出来的层级。
图 2 - 网络与计算
在分析 Overlay 网络的作用之前,我们需要对它的常见实现有大概的了解,在实践中我们一般会使用虚拟局域网扩展技术(Virtual Extensible LAN,VxLAN)组建 Overlay 网络。在下图中,两个物理机可以通过三层的 IP 网络互相访问:
图 3 - VxLAN 组成的 Overlay 网络
VxLAN 使用虚拟隧道端点(Virtual Tunnel End Point、VTEP)设备对服务器发出和收到的数据包进行二次封装和解封。
上图中两个 VTEP 会相互连接并获得网络中的 MAC 地址、IP 地址等信息,例如,服务器 1 中的 VTEP 需要知道想要访问绿色网络中的 10.0.0.2 虚拟机需要先访问 IP 地址为 204.79.197.200 的服务器 2。这些配置可以被网络管理员手动配置、自动学习、也可以通过上层的管理器设置。当绿色的 10.0.0.1 虚拟机想要向绿色的 10.0.0.2 发送数据时,会经过以下几个步骤:
图 4 - Overlay 网络中的数据包
a.从收到的 IP 数据包中获取目的虚拟机的 MAC 地址; b.在本地的转发表中查找该 MAC 地址所在服务器的 IP 地址,即 204.79.197.200; c.将绿色虚拟机所在的虚拟网络标识符(VxLAN Network Identifier、VNI)以及原始的 IP 数据包作为负载,构建新的 UDP 数据包; d.将新的 UDP 数据包发送到网络中;
3.服务器 2 的 VTEP 收到 UDP 数据包后; a.去掉 UDP 数据包中的协议头; b.查看数据包中 VNI; c.将 IP 数据包转发给目标的绿色服务器 10.0.0.2;
4.绿色的 10.0.0.2 会收到绿色服务器 10.0.0.1 发送的数据包;
在数据包的传输过程中,通信的双方都不知道底层网络做的这些转换,它们认为两者可以通过二层的网络互相访问,但是实际上经过了三层 IP 网络的中转,通过 VTEP 之间建立的隧道实现了连通。除了 VxLAN 之外,Overlay 网络还有很多实现方案,不过也都大同小异。Overlay 网络虽然能够利用底层网络在多数据中心之间组成二层网络,但是它的封包和拆包过程也会带来额外开销,所以为什么我们的集群需要 Overlay 网络呢,本文将介绍 Overlay 网络解决的三个问题:
Kuberentes 目前已经是容器编排领域的事实标准了,虽然很多传统行业仍然在使用物理机部署服务,但是越来越多的计算任务在未来都会跑在虚拟机上。虚拟机迁移是将虚拟机从一个物理硬件设备移到另一个设备的过程,因为日常的更新维护,集群中的大规模虚拟机迁移是比较常见的事情,上千台物理机组成的大集群使得集群内的资源调度变得更加容易,我们可以通过虚拟机迁移来提高资源的利用率、容忍虚拟机的错误并提高节点的可移植性[^3]。
当虚拟机所在的宿主机因为维护或者其他原因宕机时,当前实例就需要迁移到其他的宿主机上,为了保证业务不中断,我们需要保证迁移过程中的 IP 地址不变,因为 Overlay 是在网络层实现二层网络,所以多个物理机之间只要网络层可达就能组建虚拟的局域网,虚拟机或者容器迁移后仍然处于同一个二层网络,也就不需要改变 IP 地址。
图 5 - 跨数据中心的虚拟机迁移
如上图所示,迁移后的虚拟机与其他的虚拟机虽然位于不同的数据中心,但是由于上述两个数据中心之间可以通过 IP 协议连通,所以迁移后的虚拟机仍然可以通过 Overlay 网络与原集群的虚拟机组成二层网络,集群内部的主机也完全不清楚、不关心底层的网络架构,它们只知道不同虚拟机之间是可以连通的。
曾经介绍过二层网络的通信需要依赖 MAC 地址,一个传统的二层网络需要网络设备中存储从 IP 地址到 MAC 地址的转发表。
目前 Kuberentes 官方支持的最大集群为 5000 节点,如果这 5000 个节点中的每个节点都仅仅包含一个容器,这对于内部的网络设备其实没有太大的压力,但是在实际情况下 5000 节点的集群中都包含几万甚至几十万个容器,当某个容器向集群中发送 ARP 请求,集群中的全部容器都会收到 ARP 请求,这时会带来极高的网络负载。
在使用 VxLAN 搭建的 Overlay 网络中,网络会将虚拟机发送的数据重新封装成 IP 数据包,这样网络只需要知道不同 VTEP 的 MAC 地址,由此可以将 MAC 地址表项中的几十万条数据降低到几千条,ARP 请求也只会在集群中的 VTEP 之间扩散,远端的 VTEP 将数据拆包后也仅会在本地广播,不会影响其他的 VTEP,虽然这对于集群中的网络设备仍然有较高的要求,但是已经极大地降低了核心网络设备的压力。
图 6 - Overlay 网络中的 ARP 请求
Overlay 网络其实与软件定义网络(Software-defined networking、SDN)[^4]密切相关,而 SDN 引入了数据平面和控制平面,其中数据平面负责转发数据,而控制平面负责计算并分发转发表。VxLAN 的 RFC7348 中只定义了数据平面的内容,由该技术组成的网络可以通过传统的自学习模式学习网络中的 MAC 与 ARP 表项[^5],但是在大规模的集群中,我们仍然需要引入控制平面分发路由转发表。
大规模的数据中心往往都会对外提供云计算服务,同一个物理集群可能会被拆分成多个小块分配给不同的租户(Tenant),因为二层网络的数据帧可能会进行广播,所以出于安全的考虑这些不同的租户之间需要进行网络隔离,避免租户之间的流量互相影响甚至恶意攻击。传统的网络隔离会使用虚拟局域网技术(Virtual LAN、VLAN),VLAN 会使用 12 比特表示虚拟网络 ID,虚拟网络的上限是 4096 个。
图 7 - VLAN 协议头
4096 个虚拟网络对于大规模的数据中心来说远远不够,VxLAN 会使用 24 比特的 VNI 表示虚拟网络个数,总共可以表示 16,777,216 个虚拟网络,这也就能满足数据中心多租户网络隔离的需求了。
图 8 - VxLAN 协议头
更多的虚拟网络其实是 VxLAN 顺手带来的好处,它不应该成为使用 VxLAN 的决定性因素。VLAN 协议的扩展协议 IEEE 802.1ad 允许我们在以太网帧中加入两个 802.1Q 的协议头,两个 VLAN ID 组成的 24 比特也可以表示 16,777,216 个虚拟网络[^6],所以想要解决网络隔离不是使用 VxLAN 或者 Overlay 网络的充分条件。
今天的数据中心包含多个集群以及海量的物理机,Overlay 网络是虚拟机和底层网络设备之间的中间层,通过 Overlay 网络这一个中间层,我们可以解决虚拟机的迁移问题、降低二层核心网络设备的压力并提供更大规模的虚拟网络数量:
需要注意的是,Overlay 网络只是一种在物理网络上的虚拟网络,使用该技术并不能直接解决集群中的规模性等问题,而 VxLAN 也不是组建 Overlay 网络的唯一方法,在不同场景中我们可以考虑使用不同的技术,例如:NVGRE、GRE 等。到最后,我们还是来看一些比较开放的相关问题,有兴趣的读者可以仔细思考一下下面的问题:
本文由哈喽比特于4年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/7ZNsArs5TrwSSmPYbTCcig
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。