关于容器云的三种网络设计

简介: 【2月更文挑战第9天】容器网络设计:隧道、路由、VLAN。

Docker一直以来的理念都是“以简单为美”,从Docker对Linux网络协议栈的操作可以看到,Docker一开始并没有考虑到多主机互联的网络解决方案。之后Docker收购了一家网络解决方案公司Socketplane,将原有的网络部分抽离,独立成Docker的网络库,即libnetwork。libnetwork实现了5种驱动,通过插件的形式允许用户根据自己的需求来实现网络驱动,但libnetwork组件只是将Docker平台中的网络子系统模块化为一个独立库的简单尝试,离成熟和完善还有一段距离。


随着容器技术在企业生产系统的逐步落地,用户对于容器云的网络特性要求也越来越高,跨主机容器间的网络互通已经成为最基本的要求。跨主机的容器网络解决方案不外乎三大类。


1、隧道方案

比如Flannel的VXLAN,特点是对底层的网络没有过高的要求,一般来说只要是三层可达即可——只要是在一个三层可达网络里,就能构建出一个基于隧道的容器网络。不过问题也很明显,一个得到大家共识的是随着节点规模的增长,复杂度会提升,而且出现网络问题后跟踪起来也比较麻烦。在大规模集群情况下,这是需要考虑的。


2、路由方案

路由技术从三层实现跨主机容器互通,没有NAT,效率比较高,与目前的网络能够融合在一起,每一个容器都可以像虚拟机一样分配一个业务的IP。但路由网络也有问题,路由网络对现有网络设备影响比较大,路由器的路由表应该有空间限制,一般是两三万条,而容器的大部分应用场景是运行微服务,数量集很大。如果几万个新的容器IP冲击到路由表中,会导致下层的物理设备无法承受;而且每一个容器都分配一个业务IP,业务IP会很快消耗完。


3、VLAN方案

所有容器和物理机在同一个VLAN中。基于主机的端口冲突和网络资源竞争比较麻烦,相对来说Calico的是纯三层的SDN实现,它基于BPG协议和Linux自己的路由转发机制,不依赖特殊硬件,没有使用NAT或Tunnel等技术。


它能够方便地部署在物理服务器、虚拟机(如OpenStack)或者容器环境下,同时它自带的基于Iptables的ACL管理组件非常灵活,能够满足比较复杂的企业安全隔离需求。关于容器应用的网络隔离还有多种解决方案,基本上就是把不同的应用容器放置在不同的VLAN/VXLAN中,通过让不同的VLAN/VXLAN不能互访而实现隔离。


可以尝试用Docker自带的Overlay来简单地解决,首先创建不同的网络,然后在启动不同应用的容器时,使用--net参数指定容器所在的对应的VXLAN即可。结果是同一个网络中的容器是互通的,不同网络中的容器是隔离的。目前应用OVS/Linux-bridge+VLAN方案的企业比较多,但长远看来Calico方案前景不错。

相关文章
|
1天前
|
关系型数据库 MySQL 数据库
容器网络管理
容器网络管理
|
11天前
|
安全 网络协议 云计算
Docker容器网络配置详解
【7月更文挑战第16天】Docker的网络配置是实现容器间以及容器与外部网络通信的基础。通过选择合适的网络模式和配置选项,可以构建高效、安全、可扩展的Docker网络解决方案。
|
2月前
|
弹性计算 安全 微服务
【阿里云云原生专栏】容器网络技术前沿:阿里云Terway网络方案详解
【5月更文挑战第26天】阿里云Terway是高性能的容器网络方案,基于ECS的ENI实现,提供低延迟高吞吐的网络服务。它简化网络管理,实现安全隔离,并与阿里云服务无缝集成。Terway由CNI、Node和Controller组成,适用于微服务、混合云和多租户环境,为企业数字化转型中的复杂网络需求提供强大支持。
283 1
|
1月前
|
安全 数据安全/隐私保护 Docker
Docker 容器连接:构建安全高效的容器化网络生态
Docker 容器连接:构建安全高效的容器化网络生态
|
2月前
|
运维 安全 Linux
深入理解Docker自定义网络:构建高效的容器网络环境
深入理解Docker自定义网络:构建高效的容器网络环境
169 6
|
2月前
|
大数据 Linux Docker
mac docker 宿主机和容器间网络打通
mac docker 宿主机和容器间网络打通
31 0
|
2月前
|
网络协议 Docker 容器
Ubantu docker学习笔记(七)容器网络
Ubantu docker学习笔记(七)容器网络
|
2月前
|
运维 Kubernetes 网络协议
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(服务治理与网络访问)
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(服务治理与网络访问)
52 0
|
2月前
|
移动开发 安全 小程序
mpaas常见问题之小程序容器,跑起来后一直提示 "网络不给力, 请稍后再试"如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
|
2月前
|
网络协议 Unix Linux
docker网络模式详解及容器间网络通信
docker网络模式详解及容器间网络通信
311 0