CNI 这么多,怎么选?| 容器网络系列第1期

容器网络系列:第一期

伴随云原生技术的落地应用,Kubernetes正在成为云原生时代的操作系统,围绕Kubernetes的技术创新点也是层出不穷。其中,以容器网络举例,现在Kubernetes官网登记在册的 CNI 已经有近30种,可以算得上百家争鸣、各有所长了。

但随着企业开始使用Kubernetes承载越来越多的业务,企业对容器网络的要求越来越高,有些甚至已经超出了CNI的范畴。如何缓解企业在落地私有容器云平台时遇到的网络阻力,已经发展成了一个非常重要又急迫的问题。

本期我们将重点探讨 CNI 的典型场景有哪些?以及如何进行 CNI 选型?


1. CNI 简介

CNI (Container Network Interface) 定义了一组用于实现容器网络接口的配置以及 IP 地址的分配的规范。CNI 只关注容器的网络连接以及当容器删除时移除被分配的网络资源,因此 CNI 得到了广泛的支持,并且规范也易于实现。
随着kuberntes飞速发展,如今涌现出很多优秀的开源 CNI,如calico,flannel,cilium。每个 CNI 都有各自的特点以及应用场景,但是也有各自的不足之处。因此,针对不同的场景使用合适的 CNI 就变得尤为重要。有时为了满足更复杂的网络需求,甚至于需要多种 CNI  联合使用,这样会使网络模型变得更为复杂,大大增加维护难度。

更详细的CNI讲解请参考:

  • Introduction to CNI(https://www.youtube.com/watch?v=YjjrQiJOyME)
  • CNI deep dive(https://www.youtube.com/watch?v=zChkx-AB5Xc)

1.1 主流CNI对比

 

综上, 在开源 CNI 的领域中calico, flannel, cilium 都有各自的优势,但是针对企业功能还略显不足。比如 calico, flannel 基本功能都有,社区也比较活跃,同时二者可以组合使用达到取长补短,但是组合使用维护成本也会增加。cilium 则是通过 eBPF 实现的独立的数据面,在网络安全,服务转发方面研究较深,但是运维起来比较困难。而Fabric则在功能方面比较全面,性能出色且稳定性强,运维也相对简单。

2. Fabric简介

Fabric 是博云自研的 CNI 插件,旨在提供一个能适应多种场景,功能强大,性能卓越,稳定可靠以及简单易用的容器网络管理平台。

Fabric 支持 underlay/overlay 模式,同时支持 IPV4/IPV6 单栈和双栈,支持容器多网络/多网卡以及集群联邦,EIP,Qos,NetworkPolicy,PodSecurity,Windows等特色功能。

并且,为了提升运维效率, 开发了对应的 debug 工具,拥有流量追踪,缓存分析等能力。支持 Linux/Windows 操作系统、支持ARM/X86 等 CPU 架构。

从 Fabric 2.5+ 以后的版本还将集成 eBPF、智能网卡、流量分析、无感升级等功能,从而提升数据面性能,提升业务稳定性,以及更细粒度的运维调试能力。

2.1 整体架构

图 1 Fabric Underlay架构

图 2 Fabric overlay架构

Fabric 由四大核心组件组成:

  1. ovs:成熟且稳定的软件交换机,用于接入容器接口,以及数据面转发和安全策略控制
  2. ovs-controller:负责 ovs 数据面的控制,默认流表生成,动态流表下发
  3. fabric-ctl:负责集群中 pod 信息的采集,缓存,以及其他核心功能的控制
  4. fabric 二进制文件:标准的 k8s CNI,用于容器网络接口的配置

 

2.2 设计理念

Fabric 一直遵循着四大设计原则:

  1. 微分段设计: 控制面高稳定性、快速收敛、高性能、低延迟
  2. 简单即稳定: 全分布式部署、扩展性强、分布式控制、无单点故障、自动运维
  3. 安全隔离: 租户隔离、NetworkPolicy、PodSecurity、隧道加密
  4. 功能丰富: IP/MAC固定、Qos、egressIP、集群联邦、网络监控

2.3 发展历程

Fabric 自 2018 年底开始至今,已累计发布 6 个稳定版本,在十余个金融客户生产环境中稳定运行多年。

3. 通用场景及选型建议

k8s 是支持混合部署的,在很多生产环境下为了最大化利用集群资源,可以将 k8s master 节点部署在小规格虚拟机上,同时将计算节点部署在物理机或者大规格虚拟机上。甚至于, 一个集群中可以同时存在异构 CPU 节点或者不同操作系统 (Linux/Windows) 节点。不管是选用 Fabric 哪种模式,其核心功能都是完美支持的,如多网络、多IP、QoS、租户隔离、Network Policy等。

3.1 Underlay双网卡模式

该模式用最简单的方式打通了集群内外主机访问集群内业务的需求, 同时集群内的所有流量都能在外部交换机、路由器、防火墙等其他网络设备上追踪,方便了网络运维人员对集群内流量的控制以及其他审计能力。在该模式下也能最大程度保证业务网络的性能几乎等于业务网所提供的最大带宽。但是,该模式消耗的是业务网真实的 IP 地址,这在一定程度上限制了集群规模。

3.1.1 环境要求

  1. 每个节点至少包含两张网卡,分别用于管理网和业务网
  2. 管理网和业务网不能重合,业务网 IP 不能被集群外的其他机器占用
  3. 业务网卡根据需要将上联口配置成 access/trunk,且开启混杂模式

3.1.2 适用场景

(一) 集群外的机器有直接访问集群内业务的需求,如注册中心在集群外部

(二) 集群内业务对网络性能有较高的要求

(三) 集群内的业务流量能够被防火墙等安全设备控制

(四) 中小规模集群,因为集群里的 pod 消耗的是真实的 IP 地址,该场景下 IP 地址都是较为珍贵的,集群规模过大可能导致业务网 IP 地址池被用尽

3.1.3 业务网规划建议

由于 underlay 消耗的是现有IP资源,所以业务网的规划就显得十分重要。如果单个业务网过大,可能导致广播域过大从而使交换机性能下降,所以在规划业务网络时我们可以划分为多个C类网络,不同的C类网络可以给不同的租户使用这样也能保证租户间的隔离性。

3.2 Overlay模式

该模式部署简单,环境依赖少。甚至于不关心节点所处位置,只要集群内节点间能相互访问理论上就能使用 overlay 模式。另外,该模式消耗的是虚拟的IP地址,能支持大规模的业务集群。

3.2.1 环境要求

(一) 节点至少一张网卡,且每个节点之间能进行通信

(二) 如果节点上多张网卡需要保证管理网卡索引最小

(三) 节点之间放行对应的隧道协议端口,如 vxlan 需放行 UDP 4789端口,geneve 需放行 UDP 6081端口

3.2.2 适用场景

(一) 集群外集群没有直接访问集群业务的需求

(二) 集群业务对网络性能要求不是很高

(三) 私有地址池,支持大规模集群

(四) 外部网络依赖少,除了放开对应的隧道协议策略之外,无需其他配置

3.2.3 Overlay联邦

为了打通 Fabric 集群间业务 Pod 的通信,Fabric 从2.3开始就支持了集群联邦能力。相较于开源社区提供的网络联邦方案,Fabric 联邦无需建立多重隧道,跨集群的 Pod 通信和同集群跨节点的 Pod 通信原理相同,不需要额外网关转发,直接使用一层隧道打通,无多余网络损耗。

4. VPC场景及选型建议

从网络视角,基础设施可以分布到三个层级,大部分业务系统处于第二层和第三层,层级之间或层级之内的网络策略需要配置。

4.1 基于VPC的多集群管理

根据不同的业务需求,我们可以构建多个集群,按需包含 underlay 和overlay 等部署模式, 虚拟机可以跟 underlay 集群中的 Pod 直接通信,同一个 VPC 内的 overlay 集群之间可以利用联邦进行跨集群间业务通信。

5. 未来展望

现如今 Fabric 已经拥有丰富且强大的功能,并且能适用于各种环境。在未来我们将在控制面和数据面上不断进行性能优化,同时会提供更加丰富的网络能力、监控分析能力以及运维能力, 旨在打造一个更稳定,更强大的企业级容器网络平台。

K8S中文社区微信公众号

评论 5

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #5

    Joe Engressia Thank you for Helping me in changing my grade and credit score in good shape, Now am a graduate finally, reach out to him of you need his service related to hacking service, His a very good one. reach him here
    DIGITALDAWGPOUNDHACKERGROUP@GMAIL.COM
    whatsapp no. : +1 732 639 1527

    Ivan Jefferey2个月前 (10-14)回复
  2. #4

    People find it hard to stay committed again. It’s becoming a difficult thing. Getting information & data you need is quite not a big deal. Sometimes the truth needs to be unveiled by whatsoever means necessary. The latter of the case should always be reckoned with, of which it would be known eventually what would be the data at hand afterwards. definitely contact Thomas would do justice on this intercepting with wares and you will have me to thank later.
    I finally caught him red handed…
    They also have a refund policy if you wish not to go further with your job.
    Contact him via
    Email; tomcyberghost@gmail.com Text/Call +17207941811, WhatsApp +1 3047457645

    Tested and trusted.

    florence jenny1个月前 (10-25)回复
  3. #3

    I was able to catch my cheating husband red handed with a lady he has been having a love affair with and this was made possible by Fred hacker that I met through a comment posted by Kimberly Jane on Reddit about his good and professional services. I started getting suspicious of my husband since he became too possessive of his phone which wasn’t the way he did prior before now. He used to be very carefree when it comes to his phone. but now he’s become obsessed and overtly possessive. I knew something was wrong somewhere which was why i did my search for a professional hacker online and contacted the hacker for help so he could penetrate his phone remotely and grant me access to his phones operating system, he got the job done perfectly without my husband knowing about it although it came quite expensive more than i thought of.i was marveled at the atrocities my husband has been committing. Apparently he is a chronic cheat and never really ended things with his ex.. contact him here. Fredvalcyberghost@gmail.com and you can text, call him on +14236411452 and you can WhatsApp him on +15177981808.

    Monica Regina1个月前 (10-28)回复
  4. #2

    My husband has been frequently deleting all messages for the last couple of days from his phone and he didn’t know i was peeping at him, then i asked him why he was deleting all messages from his phone but he claimed that his phone memory was full and needed more space. Immediately I went in search of a hacker who can get me deleted information and contents from my husband’s phone and luckily for me i came across this reputable ethical hacker Me Fred, this hacker got the job done for me and provided me with results and i saw that my husband has been lying to me. He was simply deleting all pictures, call logs, chats and text messages between him and his secret lover so i wont get to see what he has been doing at my back. Thank God for reputable hackers who are ready to help. I must say am really impressed with the services i got from The hacker Detective and am here to say a very big thank you: contact him on fredvalcyberghost@gmail.com and you can text, call him on +;;1- (;;4;;23)641 1452 and whatsapp him on +15177981808

    Stephanie Duran1个月前 (10-28)回复
  5. #1

    Imagine losing your life savings of almost half a million dollars to a group of African scammers thinking you are going to earn more from cryptocurrency investment, that would have been disaster but Cyber Genie made that not to happen thereby rescuing me from life of torture and regrets that could have led to suicide. Don’t ever give up on trying to recover your lost investment to those African crooks, write them on [Cybergenie AT cyberservices .com] Whatspp [+1-252-512-0391]

    Fernando6天前回复