微软在其Kubernetes服务AKS正式推出Azure CNI Overlay,这是一项能够突破现有AKS网络工作负载规模和性能的服务,其所提供的网络效能可与主机网络相当,并且使丛集能够线性扩展。
AKS用户在创建丛集时,可以选用各种网络套件,诸如kubenet、Azure CNI VNET与BYOCNI等。 kubenet网络套件以Azure路由表和桥接套件为基础,进行跨节点通讯,因此在双堆叠丛集最多不能超过400个节点。
而Azure CNI VNET与BYOCNI等这些以CNI(Container Networking Interface)为基础的网络套件,虽然能够创建原生虚拟网络连接,使容器与虚拟网络中的其他资源相连接,但是CNI存在一些限制,由于每个节点的容器都需要唯一的虚拟网络IP地址,因此大型丛集可能会迅速消耗IP地址, 而这限制了丛集的规模和扩展能力,甚至可能发生延迟和不稳定等问题

因此要解决这些,并且支持多节点和Pod,且不受效能、规模和IP耗尽限制的AKS使用案例,微软开发了新的Azure CNI Overlay解决方案。 微软在CNI之上创建了一个抽象层,简化和优化网络配置,Azure CNI Overlay会从用户所定义的抽象层地址空间分配IP地址,而不使用虚拟网络中的IP地址。
如此,Azure CNI Overlay带来了许多优势,由于其以私有地址空间的路由,作为原生虚拟网络的功能,因此虽然在使用Overlay网络时,容器之间的通讯发生在虚拟的Overlay网络中,但是实际上仍仰赖底层虚拟网络VNET的路由功能来传输数据封包,因此丛集节点也就不需要执行额外操作,因而降低网络管理的复杂性, 容器间的通讯可以获得原生虚拟网络的安全性和稳定性,以高性能的网络进行通讯。
由于Azure CNI Overlay的底层,仍由VNET维护Pod CIDR区块到节点的映射,因此当Pod流量离开节点时,VNET平台还是能够掌握流量去向,使得Pod Overlay网络能够实现和原生VNET流量相同的性能,并且支持高达数百万个Pod和数千个节点。
微软将Azure CNI Overlay和VXLAN Overlay相比,Azure CNI Overlay明显拥有更好的效能,官方提到,因为封装CNI所产生的成本,是丛集效能下降的重要原因,特别是随着丛集规模成长,这样的情况会更加明显,而Azure CNI Overlay可消除封装资源消耗,在各种规模的丛集提供一致的效能表现。