摘要:业界通用的第一代裸金属容器尽管能为业务提供短缺的 CPU 资源,但如何提供与算力匹配的高性能、低开销、疾速弹性扩缩的网络资源,对现有的容器网络技术提出了一系列挑战。
金融、电商、在线教育、游戏等时延敏感型业务对算力和网络 IO 提出了极致的性能诉求,要求运行环境可能最大限度的提供计算和网络资源。
业界通用的第一代裸金属容器尽管能为业务提供短缺的 CPU 资源,但如何提供与算力匹配的高性能、低开销、疾速弹性扩缩的网络资源,对现有的容器网络技术提出了一系列挑战。
近一年多来,支流私有云容器服务和各家 Kubernetes 商业发行版都在容器网络方面加大投入,咱们发现,这些商用加强个性和开源翻新计划,尽管场景或指标有差异,但简直都把“卸载”(Offloading)和“减速”(Acceleration)作为技术主线。
华为云基于擎天架构实现的容器网络,开创性的采纳了软硬协同、卸载、Kubernetes Service 下沉、高密直通等技术,构建了业内当先的容器网络计划,成为华为云构建寰球独家零损耗裸金属容器的杀手锏之一。
硬件直通 网络性能零损耗
要彻底解决容器的互通性问题,必须赋予容器与节点等同的互通能力,这是容器网络的一次重大演进,即把容器网络与底层网络拉平,被 Kubernetes 社区称为 VPC-Native 的 CNI。
容器网络 Yangtse 就是采纳 VPC-Native 组网,这种组网被称作 ENI(Elastic Network Interface)模式,容器间接挂载具备 VPC 子网地址的 ENI,具备齐全 VPC 网络互通能力,即容器地址属于 VPC 子网,容器独占对应的 ENI 网口,容器实例能够在集群 VPC 网络和与之相连的其余 VPC 网络中进行原生路由,并且能够间接应用 VPC 原生的网络能力如 network policy、ELB、EIP、NAT 等。
同时基于华为云擎天架构的软硬协同能力,将治理和转发逻辑下沉到擎天卡上,实现容器网络主机资源 0 占用。
数据面转发能力卸载至擎天卡后,还大大提高包转发率和升高时延,采纳 VF 直通容器,实现零损耗的网络转发性能,容器内网卡与裸金属服务器主网卡性能持平
动静队列 高算力主动匹配高 IO
以后容器网络计划中,无论是宽泛采纳的 Calico 路由或 VPC 路由模式的 veth/ipvlan 组网,还是新兴的 VPC-Native 弹性网卡 (ENI) 组网,都没有针对不同的容器规格提供差别化的网口规格。
内核单队列虚构网络设备 veth/ipvlan 或是固定队列的 ENI 网口,转发能力是受限的,起因在于网络报文的转发逻辑是在内核软中断中解决的。
当网络设备的收发队列有报文达到须要转发时,会触发相应的软中断,内核通过中断负载平衡机制将不同网口队列的中断分发给不同的 CPU 核并行处理,从而晋升转发性能。
不言而喻,单队列或固定队列网口是无奈灵便满足 HPC 等计算与 IO 双密集的容器负载,使得网络 IO 成为瓶颈点,拉长了工作负载运行工夫,进步了客户老本。
而容器网络 Yangtse 反对网口动静多队列,可能依据容器负载的规格,比方:16 核的容器负载,容器网络会主动调配 16 队列的直通 ENI,实现计算与 IO 的主动匹配,提供最优的整体性能,达成了货真价实的高性能弹性计算。
Service 卸载 一跳中转性能倍增
Kubernetes 原生的 Kube-proxy 提供了集群内 Service 负载平衡能力,iptables/netfilter 被誉为 Linux 内核的瑞士 **,也是 Kube-proxy 的第一个实现计划。
随着 Kubernetes 生产集群的规模越来越大,Service 数量和后端数量也会同步增长,iptables 的规定数是服务数与后端数的乘积,当规定数超过 5000 后,规定刷新性能和新建连贯速率(线性查表)都会显著好转,CPU、内存占用会急剧回升。
容器网络 Yangtse 将 Kube-proxy 下沉至擎天卡,形象出 Internal LB 的概念,利用流表的卸载能力实现 Service 拜访一跳中转,不仅晋升了 Service 性能,而且开释了裸金属服务器的计算资源,缩小了资源损耗。
综上所述,华为云在容器网络方面曾经做出大量创新性的摸索,并逐渐利用到产品中晋升产品的商业价值,或奉献给社区,以促成云原生技术倒退。
除了文中提到的三点外,容器网络 Yangtse 为反对大规模容器部署和疾速扩容,还提供了更多的黑科技,咱们将在下一篇文章中为您具体介绍。
申请第二代裸金属容器:https://www.huaweicloud.com/product/cce.html
点击关注,第一工夫理解华为云陈腐技术~