容器集群网络方案选型

最近更新时间:2024-05-24 15:17:01

我的收藏

容器网络 CNI

容器网络接口(CNI,Container Network Interface)是一种用于配置容器网络的插件化标准。它定义了一组规范,可以与容器编排系统(如 Kubernetes 等)无缝集成,实现容器在多个主机之间的互相通信。CNI 提供基于IP的虚拟网络、IP 分配等功能,可以满足各种复杂场景下对容器 Pod 对网络的需求。
TKE 容器产品提供 “VPC-CNI”、“Global Router” 以及 “Cilium-Overlay” 三种 CNI 网络方案。
注意:
TKE 推荐用户在公有云场景下使用 “VPC-CNI” 网络方案,在注册节点场景下使用 “Cilium-Overlay” 网络方案。

VPC-CNI 网络方案

VPC-CNI 网络方案是 TKE 基于腾讯云 VPC 实现的容器网络接口 CNI,可以将 VPC 原生的弹性网卡直接分配给 Pod,实现 Pod 之间的网络互联,适用于对时延有较高需求的场景。该网络模式下,容器与节点分布在同一网络平面,容器 IP 为 IPAMD 组件分配的弹性网卡 IP。详情请参见 VPC-CNI 方案介绍

Global Router 网络方案

Global Router 网络方案是 TKE 基于腾讯云 VPC 的全局路由能力实现的容器网络接口 CNI。其中 Pod CIDR 网段独立于 VPC 的 CIDR 网段,不同节点的 Pod CIDR 信息会通过全局路由方式下发到 VPC,实现跨节点 Pod 的互访。详情请参见 Global Router 方案介绍

Cilium-Overlay 网络方案

Cilium-Overlay 网络方案是 TKE 基于 Cilium VXLan 实现的容器网络插件,实现分布式云场景中,注册节点添加到 TKE 集群的网络管理。详情请参见 Cilium-Overlay 方案介绍

TKE 网络方案对比

网络方案
VPC-CNI(推荐)
Global Router
Cilium-Overlay
基本介绍
Pod 网络地址从 VPC子网地址中划分,建议独占一个子网。
可以使用 VPC 云上网络能力(EIP/CLB/安全组等)。
Pod 网段独立于 VPC 的子网网段。
跨节点 Pod 之间互访直接通过全局路由转发。

容器网络与节点网络不在同一平面。
容器网络是基于节点网络的 Overlay 网络。

优势特点
无需按节点分配 CIDR 地址段,IP 地址不浪费。
数据面转发减少网桥,网络转发性能更高。
支持 Pod 固定 IP,适用于需要依赖容器固定 IP 的场景。
容器网段独立于 VPC 网段,使用简单,Pod 启动速度较快。

容器网段地址独立于 VPC 网段,地址充裕、扩展性强。
Pod 网络之间通过 VxLan 封装报文,适合云上云下节点互通,兼容性更好。
使用场景
对网络时延有较高要求的场景。
传统架构迁移到容器平台,依赖容器有固定 IP 的场景。
适合有特殊网络安全策略的业务,例如数据库服务下需要特殊安全组策略。
业务场景简单,对于 IP 分配和网络性能没有特殊需求。
节点不支持弹性网卡场景。
仅适用于注册节点场景。
使用限制
容器网络与节点网络属于同一个 VPC,IP 地址资源有限。
节点内容器数量受弹性网卡和弹性网卡可分配 IP 数量的限制。
固定 IP 模式不支持 固定IP Pod 跨可用区调度。

容器网络地址与节点网络地址不可冲突。
专线、对等连接及云联网等互通场景需要额外配置。
不支持固定 Pod IP。

Pod IP 在集群外不能直接访问。
需从指定子网获取2个 IP 创建内网负载均衡,满足 IDC 中注册节点访问 APIServer 和云上公共服务。
不支持固定 Pod IP。
是否支持CLB 直通
支持,详情请参见 CLB 直通 Pod Service
支持(需提交白名单申请),详情请参见 CLB 直通 Pod Service
不支持
是否支持固定ip
支持
不支持
不支持
IPv4/IPv6双栈
支持
不支持
不支持
指定子网分配ip
支持
不支持
不支持
扩容 Pod 网段
支持
支持(暂未产品化)
不支持
设置 Pod 安全组
支持
不支持
不支持
Pod绑定 EIP
支持
不支持
不支持
Pod 访问公网
支持(NAT、EIP)
支持(IP 伪装)
支持