【云原生网络架构】得意犹堪夸世俗,诏黄新湿字如鸦。这篇文章主要讲述云原生网络架构相关的知识,希望能为你提供帮助。
随着云原生技术的不断发展和演进,实现容器间互联的云原生网络架构也在不断地进行优化和完善,从Docker本身的动态端口映射网络模型到CNCF的CNI容器网络接口,再到“Service Mesh+CNI”层次化的SDN。
容器网络以容器的典型实现Docker为例,其自身在网络架构上默认采用桥接模式,即Linux网桥模式,创建的每一个Docker容器都会桥接到这个docker0的网桥上,形成一个二层互联的网络。同时还支持Host模式、Container模式、None模式的组网。
- Host模式:host模式下docker不会为容器创建网络名称空间而是与宿主机共用一个网络名称空间,并使用宿主机的网卡、端口等信息,但是其他名称空间,比如用户、文件系统等还是和宿主机隔离开的。
- Bridge网络模式:这是容器默认的设置,创建的容器默认会连接到docker的网桥上(即docker0),通过docker网桥及iptables nat表配置与宿主机进行通信。
- Container网络模式:指定新创建的容器与已存在的容器共享网络名称空间,新创建的容器不会创建网卡,而是与已存在的容器共享一个网卡、IP等,两个容器之间可以通过lo回环网卡设备进行通信,但是其他名称空间,比如用户、文件系统等还是和容器隔离开的。
- None网络模式:none模式下创建的容器除了自带的lo回环网卡设备外,没有任何网卡、路由等信息,就是一种封闭式容器。这种模式下给了用户很大的自由度,用户可以根据自己的需求来定义网络环境。
- Overlay组网:以Flannel、Cilium、Weave等为代表的容器集群组网架构,默认均采用基于隧道的Overlay组网方案。比如,Flannel会为每个主机分配一个Subnet,Pod从该Subnet中分配IP,这些IP可在主机间路由,Pod间无须NAT和端口映射就可以跨主机通信。而在跨主机间通信时,会采用UDP、VxLAN等进行隧道封装,形成Overlay网络。
- 路由组网:以Callico为代表的容器组网架构提供了一个纯三层的网络模型。在这种三层通信模型中,每个Pod都通过IP直接通信。Callico采用BGP路由协议,使得所有的节点和网络设备都记录下全网路由,这样每个容器所在的主机节点就可以知道集群的路由信息。整个通信的过程中始终都是根据BGP进行路由转发,并没有封包、解包的过程,这样转发效率就会快很多。然而这种方式会产生很多无效的路由,同时对网络设备路由规格要求较大。
推荐阅读
- Oracle Scan Listener过大导致的数据库Hang
- Python技能树共建Python爬虫模拟登录
- 下载Spring4.1.x源码并用IntelliJ IDEA打开
- 算法题每日一练---第57天(解码异或后的数组)
- #导入Word文档图片# MQTT协议连接百度物联网IOT服务器
- RENIX_license操作——网络测试仪实操
- Spring MVC实现文件上传
- C语言实战项目通讯录超详细~
- 计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!