当华为云擎天遇上容器网络,裸金属容器了解一下?

金融、电商、在线教育、游戏等时延敏感型业务对算力和网络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

点击这里→了解更多精彩内容

 

猜你喜欢

转载自blog.csdn.net/devcloud/article/details/107708370
今日推荐