注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

集群网络规划-Terway与Terway-eniip

更新时间:2022/01/18 访问次数:632

写在前面

  • Terway,阿里云基于Flannel的自研网络插件,可以看作是性能更优的Flannel
  • Terway-eniip(即Terway2.0版本,下文简称Terway2),阿里自研的第二代Terway网络插件


默认推荐的网络插件为Terway,适用于绝大多数使用场景。如果对容器网络性能没有特别的要求,推荐选择Terway网络,而不需要选择Terway-eniip(Terway2 的集群配置以及额外网络配置比较复杂,请谨慎选择)。


想要了解两种网络插件的区别,可以继续往下阅读。

Terway网络插件

VPC下 Kubernetes 的网络地址段规划

image.png

原理

  • Pod网段是Overlay的网段;比如vpc是10/8,容器可选192.168/16或172.16/12的子段
  • 每个节点再分配更细的段,例如分配/24的 (节点掩码)
  • 依靠VPC路由表打通不同节点之间的网络

优势

  • 无封包,相对用户自建k8s性能提升20%
  • Pod网段是用户指定的独立于vpc的段,便于管理

限制

  • 每个节点对应一个vpc路由,节点的最大规模受限于vpc路由表Quota。默认为48

集群规模

terway网络下,集群的最大节点数受限于Pod CIRD网段以及VPC路由表条目的上限。其中,VPC路由表条目是可以后期申请增加的,Pod CIRD网段一旦设置就无法更改

1)Pod CIDR网段

例如,将网段设置为172.20.0.0/16,该网段可用IP数为65534。

每台ECS最大POD IP数量为128(目前默认为128,以后会开放配置)。

那么,节点最大ECS数量 = 网段可用IP数/ECS最大POD IP数 = 65534/128 = 510。

如果网段的掩码过大,可用IP少,那么可以添加的ECS数量就会少

2)VPC路由表条目

默认为48,集群新增一台ECS,占用一个路由表条目。可以根据已经使用的条目数量以及需要添加的ECS数量,评估好所需配额,进行申请。

资源视图-专有网络VPC-配额管理-vpc_quota_route_entrys_num

Terway2网络插件

Terway2 是阿里云自研的 Kubernetes 网络插件,它通过将弹性网卡(ENI)分配给 Pod 来构建 Pod 网络。使用 Terway2 插件能够带来更好的 Pod 网络性能。但相对于 Flannel,创建使用 Terway2 的集群配置较为复杂。

image.png原理

  • 使用弹性网卡/辅助IP来作为容器网络的资源
  • 使用vpc/vswitch的网段作为Pod网络的网段
  • 容器网络使用弹性网卡或辅助IP打通

优势

  • 性能相对ECS无损失
  • 支持NetworkPolicy限制Pod间访问规则
  • 支持限制Pod的网络带宽
  • 使用弹性网卡可以无缝的跟云产品/混合云集成

限制

  • 创建集群配置略复杂
  • 节点上能运行的Pod数量受限节点的弹性网卡和弹性网卡辅助IP的配额

Terway与Terway2

不同的网络插件,对应的集群配置不一样,使用限制不一样。

Terway 集群配置与 Flannel 集群相比主要有两点不同:

  1. Pod 需要通过弹性网卡(ENI)接入虚拟交换机,来组建 Pod 网络。因此,除了要选择节点虚拟交换机之外,还需要指定供 Pod 通信的虚拟交换机;
  2. 不同 ECS 规格所能支持挂载的弹性网卡数量不同,而 ECS 挂载弹性网卡的数量以及单个弹性网卡支持的 IP 数量直接决定了节点所能分配的 Pod 数量,因此在选择节点规格时需要注意 Pod 数量限制。

Terway

Terway2

ECS规格要求

较低

较高

Pod CIDR

需要设置

不需要设置

Pod虚拟交换机

不需要设置

需要设置

Pod访问公网

同Pod所在ECS

走Pod虚拟交换机,需要NAT网关

Pod访问其他ECS

同Pod所在ECS,即ECS能互通就行

Pod属于集群(自动创建)的安全组,

该安全组需要有其他ECS的授权才能访问其他ECS

  • terway2网络下,需要较高的ECS规格,不然能够部署的Pod数很少
  • terway2网络下,能部署的Pod容器数量受限于ECS弹性网卡,ECS规格越高,支持的弹性网卡ip数量越多
  • terway2网络下,弹性网卡只能挂载在和它同可用区的ECS上,所以Pod需要单独指定vswitch
  • terway2网络下,Pod访问公网,一定只能走NAT网关+EIP(绑定到虚拟交换机条目上),需要额外对这部分流量进行评估,选择相应的NAT网关规格和EIP带宽
  • terway2网络下,Pod默认不能访问其他ECS,Pod所在安全组(为集群创建时后台自动创建),需要与要访问的ECS安全组互相授权,之后才能互相访问

Terway2注意事项

  • 建议您选择较高规格和较新类型的ECS机型,5代或者6代的8核以上机型
  • 单Node所支持的最大Pod数取决于该Node的弹性网卡(ENI)数。
  • 共享ENI支持的最大Pod数 = (ENI数 - 1)x 单ENI的私有IP数
  • 独占ENI支持的最大Pod数 = ENI数 - 1
  • 集群容器中连接RDS,一定要配置Pod虚拟交换机的网段作为白名单


ECS实例规格簇-分别支持的弹性网卡数

常见问题

为什么无法选择Pod虚拟交换机

  1. 先选节点虚拟交换机
  2. Pod虚拟交换机必须和节点虚拟交换机在同一个可用区,且不能重复,即所选的可用区下,需要有额外一个交换机用于Pod。列表中没有就表示需要新建交换机
  3. 选择的节点虚拟交换机个数要和Pod虚拟交换机个数一致
  4. 没有可选的Pod虚拟交换机,可以去VPC控制台创建新的交换机


举个例子,如果选择A区ECS资源。选择了一个A可用区交换机作为节点虚拟交换机后,就必须选择另外一个A可用区交换机作为Pod虚拟交换机。即,A可用区至少要有两个交换机,一个选作节点交换机,另一个选作Pod交换机。


发布提示insufficient pods

问题原因,ECS节点所支持的弹性网卡不足,建议使用 c或者g系列这种企业级的+ 4C以上

每个规格的ECS所支持弹性网卡数量请参考:ECS实例规格簇-分别支持的弹性网卡数


解决方案:

1.新建网络插件为Flannel的集群(暂时不可用,目前默认都是terway网络,预计下周可上线)

2.购买更新更高规格的ECS加入集群

FAQ

关于此文档暂时还没有FAQ
返回
顶部