容器化应用会在同一个节点上部署多个业务,而每个业务都需要自己的网络空间。为避免与其他业务网络冲突,需要Pod有自己独立的网络空间,而Pod中应用需要和其他网络进行通信,就需要Pod能够跟不同的网络互相访问。可见容器网络特点如下:
l 每个Pod都拥有自己独立的网络空间和IP地址。不同Pod的应用可以监听同样的端口而不冲突。
l Pod可以通过各自的IP地址互相访问。
集群中Pod可以通过它独立的IP地址与其他应用互通:
n 同一个集群中,Pod之间相互访问。
n Pod直接访问同一个VPC下的ECS。
n 同一个VPC下的ECS直接访问Pod。
1、Cubecni
Cubecni网络模式采用的是云原生的网络方案,直接基于天翼云的虚拟化网络中的弹性网卡资源来构建的容器网络。Pod会通过弹性网卡资源直接分配VPC中的IP地址,而不需要额外指定虚拟Pod网段。
Cubecni网络模式的特点是:
n 容器和虚拟机在同一层网络,便于业务云原生化迁移。
n 不依赖封包或者路由表,分配给容器的网络设备本身可以用来通信。
n 集群节点规模不受路由表或者封包的FDB转发表等配额限制。
n 不需要额外为容器规划Overlay的网段,多个集群容器之间只要设置安全组开放端口就可以互相通信。
n 可以直接把容器挂到SLB后端,无需在节点上使用NodePort进行转发。
n NAT网关可以对容器做SNAT,无需节点上对容器网段做SNAT:容器访问VPC内资源,所带的源IP都是容器IP,便于审计;容器访问外部网络不依赖conntrack SNAT,降低失败率。
n Cubecni网络模式支持通过网络策略(NetworkPolicy)配置Pod间网络访问的规则。
网络策略(NetworkPolicy)是一种关于Pod间及Pod与其他网络端点间所允许的通信规则的规范。NetworkPolicy资源使用标签选择Pod,并定义选定Pod所允许的通信规则。
2、Calico
Calico网络模式中Pod的网段独立于VPC的网段。
Calico网络模式的特点是:
n 性能几乎无损。
n Pod网段是独立于VPC的虚拟网段。