为啥Underlay才是容器网络的最佳落地选择

32次阅读

共计 1958 个字符,预计需要花费 5 分钟才能阅读完成。

导语:

几年前,当博云启动自研容器网络研发的时候,除了技术选型的思考,咱们对于先做 Underlay 还是 Overlay 网络也有过深度的探讨。过后的开源社区以及支流容器厂商,少数还是以 Overlay 网络计划为主,但在咱们对泛滥客户真正需要的深刻理解之后,发现局部客户对容器内外网络直通有着十分强烈的需要。思虑再三,咱们决定还是先做 Underlay 网络(起初又做了 Overlay)。随着行业与公司本身的倒退,咱们建设施行的我的项目越来越多,这让咱们对容器网络的思考也越来越深刻,从而观点也越来越清晰:

内外直通的 Underlay 网络才是容器网络的正确打开方式。

01

从需要登程,思考容器网络计划

如上图所示,这是目前企业微服务容器化部署的典型场景,也是驱动咱们做 Underlay 网络的间接起因:

  1. 服务部署在 Kubernetes 集群外部(如图:服务 1、服务 2);
  2. 数据库、注册核心、Redis、MQ 等组件部署在集群之外;
  3. 局部服务也可能部署在集群之外, 比方容器平台试用阶段(如图:服务 3)

这些服务和组件,须要能间接互联互通。

如若须要满足以上需要,最简略无效的计划就是间接把 Kubernetes 内外网络买通,也就是采纳 Underlay 网络模式。

当然,如上需要也有别的方法能够解决。比方,细化剖析服务和组件间的流量,采纳 ingress、egress,包含改写利用代码等形式,在特定状况下,这也是能够用的。然而,一方面,这些都是特定场景下的特定解决方案,不足肯定的通用性;另一方面,容易呈现配置简单、引入额定危险、出错难以定位等问题。远远没有通过 Underlay 网络间接将内外网买通这么简略无效。

还有另外的方法就是将所有服务和组件都放入 Kubernetes 集群外部,然而这种计划仍是针对特定场景的非通用计划,很难保障企业所有的利用都在一个 Kubernetes 集群里。

同样,对于容器内外网络间接互联互通的需要场景还有:

  • 特定用处的 Kubernetes 集群对外提供服务。比方专门用作提供 PaaS 中间件服务的 Kubernetes 集群、专门用作 CI/CD 服务的 Kubernetes 集群、专门用作提供大数据服务的 Kubernetes 集群等;
  • 跨多集群的服务 / 组件互联互通;
  • 为了在试点阶段升高危险,局部服务跑在集群内、局部服务跑在集群外等场景。

02

与虚拟机比照,从容器实质思考容器网络计划

在容器的利用实际过程中,除了利用场景,咱们也从底层基础设施的角度对容器进行了继续的思考。

从基础设施的角度看容器: 容器和虚拟机的实质都是一样的,是下层利用的承载基础设施。

因而,从底层角度看,对容器网络的需要跟虚拟机是统一的。那么,虚拟机网络的落地模式是怎么的呢?

如上图右侧局部所示,IaaS 层的落地网络计划能够认为是有行业标准的,不论是基于 VMware 还是 OpenStack,根本都是采纳 OVS(或相似 OVS)的二层 Underlay 网络计划。

因而,从基础设施的角度往上看,容器网络采纳跟 IaaS 相似的计划,行将虚拟机和容器放到同一个网络层面上,是最正当的抉择。

PS:在私有云上,虚拟机都在 VPC 里,因而目前私有云的容器网络计划,也是次要采纳将容器和虚拟机放到同一个 VPC 中,能够间接互联互通的计划。这也是对上述判断的典型证实。

同时,对于局部客户反馈的 Unberlay 网络占用 IP 地址过多的问题,从虚拟机和容器的比照角度,也能够取得正当的解释:如果应用虚拟机部署,占用 IP 地址数量与容器 Underlay 网络是一样的。IP 地址的数量是由利用数量决定的,应用容器并没有引入多余 IP 地址占用。另外,Ipv6 曾经开始规模落地,在 Ipv6 时代,IP 地址数量将不会是问题。

03

技术计划选型

容器典型的开源 Unberlay 网络选型计划有 Calico 和 MACVLAN,这两个计划的问题也比拟显著:

Calico:须要在数据中心路由器(或三层交换机)关上 BGP 路由协定,而 BGP 是广域网的路由协定,个别在数据中心外部不会启动,低端三层交换机 / 路由器对齐的反对状况也有危险。

MACVLAN: 几年前有局部客户采纳此容器网络计划,MACVLAN 最大的问题就是社区活跃度曾经很低,一些问题长期没有在社区中解决。同时,面向未来的扩展性也比拟差。

以上也是博云基于 OVS 自研 Underlay(也反对 Overlay)网络的起因。

04

总结

在容器网络计划中,Overlay 网络计划有着对底层网络要求低(落地过程不须要跟网络部门打交道)、落地容易、IP 地址占用少等特点,也有本人实用的个性需要场景。然而随着越来越多的客户将 Kubernetes 和容器大规模利用到生产环境中,博云客户中抉择应用 Underlay 网络模式的比例也越来越高。这让咱们更加明确意识到:

内外直通的 Underlay 网络才是容器网络的正确打开方式。

正文完
 0