阿里云容器服务 Kubernetes 集群目前支持两种容器网络插件:Flannel 和 Terway。Terway 是阿里云自研的 Kubernetes 网络插件,它通过将弹性网卡(ENI)分配给 Pod 来构建 Pod 网络。
使用 Terway 插件能够带来更好的 Pod 网络性能。但相对于 Flannel,创建使用 Terway 的集群配置较为复杂,本文将对配置的过程和一些注意事项进行介绍。
Terway 集群配置与 Flannel 集群相比主要有两点不同:
- Pod 需要通过弹性网卡(ENI)接入虚拟交换机,来组建 Pod 网络。因此,除了要选择节点虚拟交换机之外,还需要指定供 Pod 通信的虚拟交换机;
- 不同 ECS 规格所能支持挂载的弹性网卡数量不同,而 ECS 挂载弹性网卡的数量以及单个弹性网卡支持的 IP 数量直接决定了节点所能分配的 Pod 数量,因此在选择节点规格时需要注意 Pod 数量限制。
Step 1:选择节点交换机
与普通集群相同,首先需要为节点选择专有网络和虚拟交换机。但在使用 Terway 时,在 VPC 内还需要为 Pod 虚拟交换机规划充足的网络地址空间,可参考:https://help.aliyun.com/document_detail/86500.html
Step 2:选择 Terway 模式
在网络插件中选择 Terway。
Terway 默认为多 IP 模式,同时也支持 Pod 独占弹性网卡的模式,能够带来更好的性能。但此时节点上的 Pod 数量收到 ECS 能够挂载的弹性网卡数量限制。独占模式需要提交工单申请开放。
Step 3:选择 Pod 虚拟交换机
接下来指定供 Pod 使用的虚拟交换机,有如下的限制和建议:
- 对于在第一步中选择的每一个节点虚拟交换机,必须选择一个相同可用区的 Pod 虚拟交换机;
- 不能复用第一步中选择的节点虚拟交换机;
- 所选虚拟交换机的 CIDR 决定了可支持的 Pod 数量,为了给可能的集群扩容留下足够的地址空间,建议选择子网掩码不大于 19 的虚拟交换机,列表中将显示交换机对应的可支持 Pod 数量。
在交换机列表中,不可选的交换机将被禁用,可以参考提示了解不可选的原因。
Step 4:选择节点实例规格
在选择节点实例规格时,需要考虑其支持挂载的ENI数量和相应的 Pod 数量。在规格列表中,相应的数据已经列出,绿色数字为该型号在不同 Terway 模式下可支持的 Pod 数量。