容器服务 Kubernetes 版支持两种容器网络插件:Terway与Flannel。这两种容器网络插件拥有不同的底层实现与特性,适用于不同的应用场景。容器网络插件需要在创建集群时进行安装,且集群创建后不支持更改,请您在创建集群前完成容器网络插件选型。
对比项 | Terway | Flannel |
插件来源 | 阿里云自研的网络插件,专为ACK优化,拥有多种工作模式。 | Kubernetes社区提供的的Flannel CNI插件。 |
适用场景 | 使用大规模集群,希望避免IP地址浪费,需要较高网络性能,或对容器网络有自定义控制需求的场景。 | 使用小规模集群,仅需要简单的容器网络体验,不需要使用网络策略(Network Policy),也无需对容器网络进行自定义控制的场景。 |
Pod网段 |
|
|
单节点Pod限额 | Pod使用节点ENI,单节点Pod限额由节点的规格决定。详细计算方法请参见节点Pod限额计算方法。 | Pod限额由分配给节点的Pod网段大小决定,与节点规格无关。每个节点默认支持256个Pod。 |
集群规模 | 默认支持5000个节点,申请配额后最大支持15000个节点。 | 使用Flannel时,每一个节点对应一条VPC路由表项。受限于VPC路由表大小,单VPC默认支持200个节点,申请配额后最大支持1000个节点。 |
网络性能 |
| Pod使用所在节点的网络协议栈对外访问,存在NAT转换损耗。 |
IPv4/IPv6双栈 | 支持双栈。 | 不支持双栈。 |
Network Policy支持 | 支持Kubernetes原生网络策略Network Policy,可以定义复杂的容器间访问控制。 | 不支持Network Policy。 |
固定Pod IP | 支持为Pod配置固定IP。 | 不支持为Pod配置固定IP。 |
网络安全 | 支持为Pod配置独立的虚拟交换机与安全组。 | 不支持为Pod配置独立的虚拟交换机与安全组。 |
会话保持 | 负载均衡后端直接对接Pod,依托会话保持能力,可以实现在后端Pod发生变化时服务无中断。 | 负载均衡后端使用NodePort连接Pod,在Pod发生变化时,流量会中断, 可能导致业务上的重试。 |
多集群互访 | 多个集群的Pod之间只要设置安全组开放端口就可以互相通信。 | 无法支持。 |
Pod源IP保留 | Pod访问VPC内其他端点,所使用的源IP都是Pod IP,便于审计。 | Pod访问VPC内其他端点,所使用的源IP是节点IP,Pod IP无法保留。 |
后续步骤
在创建集群后,为Pod、Service、节点分配的网段无法修改。网段的大小决定这三种资源的数量上限,可能会对您的业务部署产生影响。规划不同的网段可以实现资源在网络逻辑上的隔离,以便于您实现访问控制、定制化路由等操作。因此推荐您在创建集群前完成网段规划,具体操作请参见Kubernetes集群网络规划。
完成网段规划后:
如果您计划使用Terway,请参见使用Terway网络插件在创建集群时安装Terway。
如果您计划使用Flannel,请参见使用Flannel网络插件在创建集群时安装Flannel。