图解 Kubernetes 容器网络发展

 巨子嘉   2023-04-03 17:23   548 人阅读  0 条评论



图解 Kubernetes 容器网络发展  第1张

与传统的虚拟化相比,Kubernetes容器的生命周期更短、数量密度更高、集群变更速度更快。容器网络就必须对集群节点之间的高速通信进行充分的考量。除此之外,在企业级的容器云平台上,承载众多租户的计算负载之间资源的安全隔离,也必须要考虑到的因素。

显而易见,传统的物理网络架构无法满足容器高灵活性的需求,容器网络必须要有一种崭新的设计架构。Kubernetes快速发展演进,其中网络这块发展变革最快,生态最繁荣。

容器网络的发展,从Docker主导的CNM模型,演进到Google、CoreOS、Kubernetes主导的CNI模型。CNM与CNI并不是网络的实现,而是网络规范和网络体系。当前,容器网络CNI基本是事实的标准,除了背后开源社区的阵营不同,更多是技术迭代演进,架构优化调整。与Kubernetes在最新版本开始解耦Docker一样。图是容器网络发展脉络,从运行效率与管理效率两个方面推动容器持续迭代优化。

图解 Kubernetes 容器网络发展  第2张

01

单节点容器网络


容器单节点网络,在单个容器主机,通过Bridge或者Macvlan等方式实现共享宿主机物理网卡,多个容器使用“端口映射”的方式共享容器主机IP地址。存在问题是如何进行大规模管理,容器间跨主机无需经过NAT无法直接通信。图所示

图解 Kubernetes 容器网络发展  第3张

02

Kubernetes Flannel网络


Kubernetes Flannel网络,实现容器主机集群和跨节点Pod直连,每个容器主机分配一个网段用于容器内Pod互联。通过VxLAN协议封装实现Overlay容器网络,容器IP在物理网络上传输时使用物理机IP,其真实IP会被封装在VxLAN协议中。每个机器上有一个flanneld服务进行外部网络通信时的封包和解包。存在问题是虽然大二层带来了连通的便利,但是管控、访问控制、租户隔离没有实现,如图所示
图解 Kubernetes 容器网络发展  第4张

03

多租户 + NetworkPolicy容器网络


多租户 + NetworkPolicy容器网络,Openshift v3 OVS网络就是基于这个思路已经实现。通过VxLAN实现跨集群互通,使用可编程OVS流表控制每个节点上的容器流量转发控制,多租户之间的网络NetworkPolicy控制,基于Namespace级别控制,基于Pod、端口的控制。存在问题是OVS和流表依然是单机,大量的流程编程工作,SVC和LB暴露依赖iptables,性能开销较大,如下图所示。
图解 Kubernetes 容器网络发展  第5张

04

SDN容器网络


SDN容器网络,随着技术快速的发展,尤其是近几年大型国企数字化转型加速,各种各样的应用容器化运行之后,OVS容器网络的局限性开始突显。首先就是统一控制平面效率不高。其次是OVS借助每个节点上iptables实现,iptables实现NAT时性能开销大,同时Kubernetes Service管理复杂。最后是IPv6与Windows等新需求难以支持。
OVN是从OVS发展演进而来,是openvSwitch原生控制层实现,用于将分布式的openvSwitch交换机统一管理。OVN是集中式SDN控制器,实现集群层面做网络编排,管理组件高可用,使用OpenFlow控制协议,利用OVS实现网络转发。

图解 Kubernetes 容器网络发展  第6张

05

总结

 

OVN虽然很多功能(LB,Gateway,DNS, DHCP)依然使用OVS进行底层流量转发,但是大幅度提升了上层应用(Openstack、Kubernetes、Openshift)的管理能力。与其他的kubernetes CNI网络插件相比,OVN是真正的SDN!


本文地址:https://dockerworld.cn/?id=309
温馨提示:文章内容系作者个人观点,不代表Docker中文社区对观点赞同或支持。
版权声明:本文为转载文章,来源于 巨子嘉 ,版权归原作者所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?