云原生网络2.0 容器IP地址管理 云原生网络2.0下的BMS节点和ECS节点分别使用的是弹性网卡和辅助弹性网卡: Pod的IP地址从配置给容器网络的VPC子网上直接分配,无需为节点分配一个单独的小网段。 ECS节点添加到集群中,先绑定用于承载辅助弹性网卡的弹性网卡,待弹性网卡绑定完成后,即可绑定辅助弹性网卡。 ECS节点上绑定的弹性网卡数: 该节点最多可绑定的辅助弹性网卡数/64 ,向上取整。 ECS节点上绑定的总网卡数: 用于承载辅助弹性网卡的弹性网卡数+当前Pod使用的辅助弹性网卡数+预热的辅助弹性网卡数 。 BMS节点上绑定的网卡数: 当前Pod使用的弹性网卡数+预热的弹性网卡数 。 Pod创建时,优先从节点的预热网卡池中随机分配一个可用的网卡。 Pod删除时,网卡释放回节点的预热网卡池。 节点删除时,将释放节点上所有已绑定的网卡(弹性网卡释放回集群预申请的网卡池,辅助弹性网卡直接删除)。 云原生2.0网络目前支持两种网卡预热策略:节点容器网卡动态预热策略 和 节点绑定容器网卡数总量高低水位策略(废弃中) 。使用场景如下表所示: 表 容器网卡预热策略对比表 容器网卡预热策略 节点容器网卡动态预热策略(默认策略) 节点绑定容器网卡数总量高低水位策略(废弃中) 管理策略 节点最少绑定容器网卡数(nicminimumtarget):保障节点最少有多少张容器网卡绑定在节点上(未被Pod使用+已被Pod使用) 节点预热容器网卡上限检查值(nicmaximumtarget):当节点绑定的容器网卡数超过该值,不再主动预热容器网卡 节点动态预热容器网卡数:当Pod使用完节点最少绑定容器网卡数(nicminimumtarget)后,会始终额外预热多少张容器网卡 节点预热容器网卡回收阈值(nicmaxabovewarmtarget):只有当 节点上空闲的容器网卡数 节点动态预热容器网卡数(nicwarmtarget) 大于此阈值时,才会触发预热容器网卡的解绑回收 节点绑定容器网卡数低水位:保障节点至少会绑定多少张网卡(未被Pod使用+已被Pod使用) 节点绑定容器网卡数高水位:保障节点至多会绑定多少张网卡,超过该值会尝试解绑未被使用的空闲网卡 适用场景 在尽可能提高IP资源利用率的前提下,尽可能加快Pod的启动速度,适用于容器网段IP地址数紧张的场景 通过合理配置上述四个参数,可适用于各种业务场景。 适用于容器网段IP地址数充足,且节点上Pod数变化剧烈,但固定在某个范围的场景 说明 1.19.16r2、1.21.5r0、1.23.3r0到1.19.16r4、1.21.7r0、1.23.5r0之间的集群版本只支持nicminimumtarget和nicwarmtarget两个容器网卡动态预热参数配置,绑定网卡数总量高低水位配置优先级高于容器网卡动态预热配置。 1.19.16r4、1.21.7r0、1.23.5r0、1.25.1r0及以上集群版本支持全部四个容器网卡动态预热参数配置,容器网卡动态预热配置优先级高于绑定网卡数总量高低水位配置。 图节点容器网卡动态预热策略 针对节点容器网卡动态预热策略,CCE提供了四个参数配置,您可以根据业务规划,集群规模以及节点上可绑定的网卡数,合理设置这四个参数。 表容器网卡动态预热参数 容器网卡动态预热参数 默认值 参数说明 配置建议 节点最少绑定容器网卡数(nicminimumtarget) 10 保障节点最少有多少张容器网卡绑定在节点上,支持数值跟百分比两种配置方式。 数值配置:参数值需为正整数。例如10,表示节点最少有10张容器网卡绑定在节点上。当超过节点的容器网卡配额时,后台取值为节点的容器网卡配额。 百分比配置:参数值范围为1%100%。例如10%,如果节点容器网卡配额128,表示节点最少有12张(向下取整)容器网卡绑定在节点上。建议nicminimumtarget与nicmaximumtarget为同类型的配置方式(同采用数值配置或同采用百分比配置)。 建议配置为大部分节点平时日常运行的Pod数。 节点预热容器网卡上限检查值(nicmaximumtarget) 0 当节点绑定的容器网卡数超过节点预热容器网卡上限检查值(nicmaximumtarget),不再主动预热容器网卡。 当该参数大于等于节点最少绑定容器网卡数(nicminimumtarget)时,则开启预热容器网卡上限值检查;反之,则关闭预热容器网卡上限值检查。支持数值跟百分比两种配置方式。 数值配置:参数值需为正整数。例如0,表示关闭预热容器网卡上限值检查。当超过节点的容器网卡配额时,后台取值为节点的容器网卡配额。 百分比配置:参数值范围为1%100%。例如50%,如果节点容器网卡配额128,表示节点预热容器网卡上限检查值64(向下取整)。 建议nicminimumtarget与nicmaximumtarget为同类型的配置方式(同采用数值配置或同采用百分比配置)。 建议配置为大部分节点平时最多运行的Pod数。 节点动态预热容器网卡数(nicwarmtarget) 2 当Pod使用完节点最少绑定容器网卡数(nicminimumtarget)后,会始终额外预热多少张容器网卡,只支持数值配置。 当节点动态预热容器网卡数(nicwarmtarget) + 节点当前绑定的容器网卡数 大于 节点预热容器网卡上限检查值(nicmaximumtarget) 时,只会预热nicmaximumtarget与节点当前绑定的容器网卡数的差值。 建议配置为大部分节点日常10s内会瞬时弹性扩容的Pod数。 节点预热容器网卡回收阈值(nicmaxabovewarmtarget) 2 只有当节点上空闲的容器网卡数 节点动态预热容器网卡数(nicwarmtarget) 大于此阈值 时,才会触发预热容器网卡的解绑回收。只支持数值配置。 调大此值会减慢空闲容器网卡的回收,加快Pod的启动速度,但会降低IP地址的利用率,特别是在IP地址紧张的场景,请谨慎调大 。 调小此值会加快空闲容器网卡的回收,提高IP地址的利用率,但在瞬时大量Pod激增的场景,部分Pod启动会稍微变慢。 建议配置为大部分节点日常在分钟级时间范围内会频繁弹性扩容缩容的Pod数 大部分节点日常10s内会瞬时弹性扩容的Pod数。 说明 上述容器网卡动态预热参数支持集群级别的全局配置和节点池级别的差异化配置,其中节点池级别的容器网卡动态预热配置优先级高于集群级别的容器网卡动态预热配置。 容器网络组件会为每个节点维护一个可弹性伸缩的预热容器网卡池,定时(约10s一次)检测并计算需要绑定的预热容器网卡数 或需要解绑的空闲容器网卡数 : 需要绑定的预热容器网卡数 min(nicmaximumtarget 当前绑定的容器网卡总数,max(nicminimumtarget 当前绑定的容器网卡总数,nicwarmtarget 当前空闲的容器网卡数)) 需要解绑的空闲容器网卡数 min(当前空闲的容器网卡数 nicwarmtarget nicmaxabovewarmtarget,当前绑定的容器网卡总数 nicminimumtarget) 节点上当前预热的容器网卡数稳态后会维持在以下区间内: 当前预热的容器网卡数区间最小值 min(max(nicminimumtarget 当前绑定的容器网卡总数,nicwarmtarget), nicmaximumtarget 当前绑定的容器网卡总数) 当前预热的容器网卡数区间最大值 max(nicwarmtarget+ nicmaxabovewarmtarget, 当前绑定的容器网卡总数 nicminimumtarget) Pod创建时,优先从节点的预热容器网卡池中顺序分配(最早未被使用的)一张空闲的容器网卡,如没有可用的空闲网卡,会新创建一张网卡(辅助弹性网卡)或 新绑定一张网卡(弹性网卡)以分配给该Pod。 Pod删除时,对应的容器网卡先释放回节点的预热容器网卡池,2分钟冷却时间内可供下一个Pod循环使用,超过2分钟冷却时间后且节点预热容器网卡池计算出需要释放该容器网卡,才会释放该容器网卡。 图节点绑定容器网卡数总量高低水位策略 针对总量高低水位算法,CCE提供了一个配置参数,您可以根据业务规划,集群规模以及节点上可绑定的网卡数,合理设置这个参数: 节点绑定容器网卡数低水位:默认为0,保障节点至少会绑定多少张网卡(未被Pod使用+已被Pod使用)。ECS节点预绑定低水位网卡数节点绑定网卡数低水位节点总辅助弹性网卡数;BMS节点预绑定低水位网卡数节点绑定网卡数低水位节点总弹性网卡数。 节点绑定容器网卡数高水位:默认为0,保障节点至多会绑定多少张网卡,超过该值会尝试解绑未被使用的空闲网卡。ECS节点预绑定高水位网卡数节点绑定网卡数高水位节点总辅助弹性网卡数;BMS节点预绑定高水位网卡数节点绑定网卡数高水位节点总弹性网卡数。 容器网络组件会为每个节点维护一个可弹性伸缩的容器网卡池: 当已绑定容器网卡数量(Pod使用的容器网卡数+预绑定的容器网卡数) 预绑定高水位容器网卡数 ,且 节点预绑定的容器网卡数>0 时,会定时释放预绑定的容器网卡(超过2分钟未被使用的空闲网卡),直到 Pod使用的容器网卡数+预绑定的容器网卡数节点预绑定高水位容器网卡数 或Pod使用的容器网卡数 > 节点预绑定高水位容器网卡数 且 节点预绑定的容器网卡数0。