http://www.meiguoidc.com

Ack集群Terway网络场景下的vSwitch扩容

Terway是阿里云开源的基于专有网络 VPC 的容器网络接口CNI(Container Network Interface)插件,支持基于Kubernetes标准的网络策略来定义容器间的访问策略。可以通过使用Terway网络插件实现Kubernetes集群内部的网络互通

Terway网络插件将原生的弹性网卡分配给Pod实现Pod网络,支持基于Kubernetes标准的网络策略(Network Policy)来定义容器间的访问策略,并兼容Calico的网络策略

在Terway网络插件中,每个Pod都拥有自己网络栈和IP地址。同一台ECS内的Pod之间通信,直接通过机器内部的转发,跨ECS的Pod通信,报文通过VPC的弹性网卡直接转发。由于不需要使用VxLAN等的隧道技术封装报文,因此Terway模式网络具有较高的通信性能

一句话总结,Terway最大的特点就是借助于云上ECS服务器的特性,将pod与node的网络进行了拉平,同时使用VPC下vSwitch中的ip

由于使用了Terway网络模式,随着node机器和pod数量的增多,每分配一个ip出去都需要消耗掉vpc下vsw的可用ip。如果某短时间业务快速增长,导致pod大量消耗可用ip,这个时候就有可能因前期规划不充足导致vSwitch的可用ip不足

这个时候新创建的pod状态为ContainerCreating,describe查看pod提示error allocate ip...,这个时候查看Pod所在节点的Terway的日志,会有下面内容

提示没有足够的ip,这个时候基本都是由于交换机的ip不够用,登录到交换机的控制台可以查看到这个节点所在的交换机的可用ip数,如果很少甚至为0,就表示需要扩容了

3.1 新增交换机并配置 NAT

在专有网络管理控制台对应的VPC创建新的vSwitch,该vSwitch必须与IP资源不足的vSwitch在同一个区域。这是因为Terway分配给pod ip时的策略是,分配node所在可用区中的vSwitch对应的ip,因此,扩容就需要扩容同一可用区的交换机

在初始化集群新建交换机以及扩容交换机的时候都应该考虑,因Pod密度越来越大,为了满足Pod对IP地址日益增长的需求,建议创建给Pod使用的vSwitch的网络位小于等于19,即每个网段中至少包含8192个可用IP地址

vSwitch创建完成后,需要对这个vSwitch配置NAT策略,以便访问外部网络。

3.2 配置集群的 Terway

配置集群的Terway,添加上面创建的vSwitch到Terway的ConfigMap配置中。

配置样例参考Terway 配置参考[1],部分内容说明如下:

上面配置参数中,资源池水位的配置值。Terway使用底层虚拟化底层的网络资源打通容器网络,网络资源的创建和释放需要一系列的API调用,如果在Pod创建销毁时频繁调用API会导致Pod配置时间较长。Terway通过池化的方式对资源进行缓存,当小于资源的池的最小水位时自动补充资源,在大于资源池最大水位时开始释放资源,这样保障了高效的资源利用和分配的效率。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。