容器网络模型对比
容器网络为集群内Pod分配IP地址并提供网络服务,CCE支持如下几种网络模型,您可在创建集群时进行选择。
- 云原生网络2.0模型是自研的新一代容器网络模型,深度整合了虚拟私有云VPC的弹性网卡(Elastic Network Interface,简称ENI)和辅助弹性网卡(Sub Network Interface,简称Sub-ENI)的能力,将Pod直接绑定弹性网卡或辅助弹性网卡,使每个Pod在VPC内均拥有独立的IP地址,且支持ELB直通容器、Pod绑定安全组、Pod绑定弹性公网IP等特性,适用于对节点规模、网络性能和安全有较高需求的场景,如高性能计算、游戏等场景。
- VPC网络模型将虚拟私有云VPC的路由方式与底层网络深度整合,适用于性能要求较高的场景,但节点数量受限于虚拟私有云VPC的路由配额,适合中小规模组网。
在VPC网络模型中,容器网段独立于节点网段进行单独设置。在Pod IP地址分配时,集群中的每个节点会被分配固定大小的Pod IP地址段,用于给该节点上运行的Pod分配IP地址。由于VPC网络模型没有隧道封装的消耗,容器网络性能相对于容器隧道网络有一定优势。此外,使用VPC网络模型的集群时,由于VPC路由表中自动配置了容器网段与VPC网段之间的路由,可以支持同一VPC内的云服务器从集群外直接访问容器实例等特殊场景。
- 容器隧道网络模型是在主机网络平面的基础上,通过隧道封装技术来构建一个独立的容器网络平面。CCE集群容器隧道网络使用了VXLAN作为隧道封装协议,并使用了Open vSwitch作为后端虚拟交换机。VXLAN是一种将以太网报文封装成UDP报文进行隧道传输的协议,而Open vSwitch是一款开源的虚拟交换机软件,提供网络隔离和数据转发等功能。
容器隧道网络虽然会有少量隧道封装性能损耗,但具有通用性强、互通性强、高级特性支持全面(例如NetworkPolicy网络隔离)等优势,适用于大多数性能要求不高的场景。
对比维度 |
容器隧道网络 |
VPC网络 |
云原生网络2.0 |
---|---|---|---|
适用场景 |
|
|
|
核心技术 |
OVS |
IPVlan,VPC路由 |
VPC弹性网卡/弹性辅助网卡 |
适用集群 |
CCE Standard集群 |
CCE Standard集群 |
CCE Turbo集群 |
容器网络隔离 |
Pod支持Kubernetes原生NetworkPolicy |
否 |
Pod支持使用安全组隔离 |
ELB对接Pod |
ELB对接Pod需要通过节点NodePort转发 |
ELB对接Pod需要通过节点NodePort转发 |
使用独享型ELB时可直接对接Pod 使用共享型ELB对接Pod需要通过节点NodePort转发 |
Pod IP地址管理 |
|
|
|
每个节点上可运行的Pod数量 |
取决于节点可以创建的最大实例数,由kubelet的配置参数maxPods决定,详情请参见节点最大实例数。 |
由以下两个参数中的最小值决定:
|
由以下两个参数中的最小值决定:
|
网络性能 |
基于VxLAN隧道封装,有一定性能损耗。 |
无隧道封装,跨节点通过VPC路由器转发,性能较好,可媲美主机网络,但存在NAT转换损耗。 |
容器网络与VPC网络融合,性能无损耗。 |
组网规模 |
最大可支持2000节点 |
受限于VPC路由表能力,适合中小规模组网,建议规模为1000节点及以下。 VPC网络模式下,集群每添加一个节点,会在VPC的路由表中添加一条路由(包括默认路由表和自定义路由表),因此集群本身规模受VPC路由表上限限制,创建前请提前评估集群规模。路由表配额请参见使用限制。 |
最大可支持2000节点 由于云原生网络2.0集群中的容器从VPC网段内分配IP地址,消耗VPC的地址空间,实际支持规模受限于VPC子网网段大小,因此创建前请提前评估集群规模。 |
IPv4/IPv6双栈 |
支持创建IPv4/IPv6双栈集群 |
不支持 |
支持创建IPv4/IPv6双栈集群 |
相关文档
- 在规划集群VPC网段、容器网段和服务网段时,需要综合考虑业务的当前需求和未来扩展的潜力,避免因IP地址耗尽而导致的业务中断或扩展受限。因此推荐您在创建集群前完成网段规划,详情请参见集群网络地址段规划实践。
- 如果您需要创建IPv4/IPv6双栈集群,请参见通过CCE搭建IPv4/IPv6双栈集群。