CCE Network Plugin说明
更新时间:2025-08-15
组件介绍
CCE Network Plugin 是基于百度云弹性网卡实现的 CNI 插件。
组件功能
CCE Network Plugin 模式是百度云容器引擎 CCE 支持的扩展网络模式,基于百度云的弹性网卡产品,能够为集群内的 Pod 分配 VPC 内的 IP 地址。 由百度云 VPC 功能负责路由,打通容器网络的连通性,可实现 Pod 和 Node 的控制面和数据面完全在同一网络层面,该模式下的 Pod 能够复用百度云 VPC 所有产品特性。
使用限制
- CCE Network Plugin是系统组件,当前暂时不支持在控制台升级,如有升级需求请提工单
安装组件
安装组件 CCE Network Plugin作为系统组件,在创建集群时默认安装,此处您无需关注安装。
升级组件
- 登录百度智能云官网,并进入管理控制台。
- 选择“产品导览>容器>容器引擎”,单击进入容器引擎管理控制台。
- 单击左侧导航栏中的“集群管理>集群列表”。
- 在集群列表页面中,单击目标集群名称进入集群管理页面。
- 在集群管理页面单击”运维与管理>组件管理”。
- 在组件管理列表中选择 网络 标签页,“CCE Network Plugin”组件,单击“...”,选择“升级”操作。
- 查看组件介绍,单击“确认”按钮完成组件的升级。
部署情况
安装 CCE Network Plugin组件,将在 Kubernetes 集群中部署以下对象:
对象名称 | 所属NameSpace | 资源类型 | 所占资源 |
---|---|---|---|
cceendpoints.cce.baidubce.com | - | CRD | - |
clusterpodsubnettopologyspreads.cce.baidubce.com | - | CRD | - |
enis.cce.baidubce.com | - | CRD | - |
netresourcesets.cce.baidubce.com | - | CRD | - |
podsubnettopologyspreads.cce.baidubce.com | - | CRD | - |
subnets.cce.baidubce.com | - | CRD | - |
cce-network-v2-reserved | kube-system | - | ConfigMap |
cce-network-v2-config | kube-system | - | ConfigMap |
cni-config-template | kube-system | - | ConfigMap |
cce-network-operator | kube-system | - | Deployment |
cce-network-agent | kube-system | - | DaemonSet |
cce-network-v2 | kube-system | - | Deployment |
cce-cni-v2 | kube-system | - | ServiceAccount |
cce-network-v2 | kube-system | - | Deployment |
cce-cni-v2 | kube-system | - | ClusterRole |
cce-cni-v2 | kube-system | - | ClusterRoleBinding |
cce-network-v2-mutating-webhook | kube-system | - | MutatingWebhookConfiguration |
组件升级策略调整
如果您的组件升级策略为OnDelete,建议您修改成RollingUpdate,以避免无法进行组件升级。
修改方式如下:
1.在集群详情-工作负载-守护进程集,找到cce-network-agent,点击“编辑YAML”,如下图
2.按照下图所示,修改升级策略为RollingUpdate
主要版本变更
版本号 | 适配集群版本 | 更新时间 | 更新内容 | 限制和影响 |
---|---|---|---|---|
v2.13 | CCE/v1.18+ | 2025.08.01 | 新特性:支持 eri 全生命周期管理 新特性:支持使用 rdma 的容器通过申请的资源来决定选择使用 HPC 或 ERI 子设备 |
无 |
v2.12 | CCE/v1.18+ | 2024.06.28 | 新特性:支持 Burstable ENI 池,有效避免子网 IP 资源紧张时,节点 ENI 池资源不足的问题。 新特性:增加 eni 安全组同步功能, 保持CCE ENI 和节点安全组同步。 新特性:增加节点网络配置集功能 NetResourceConfigSet,支持指定节点独立配置网络资源。 |
无 |
v2.11 | CCE/v1.18+ | 2024.05.27 | 新特性:容器内支持分配 RDMA 子网卡及 RDMA 辅助IP。 | 无 |
v2.10 | CCE/v1.18+ | 2024.03.05 | 新特性:支持 VPC-ENI 模式下的 EBC 主网卡辅助 IP 模式。 新特性:重构 CNI 配置文件管理逻辑,支持保留自定义 CNI 插件配置。 新特性:增加对portmap 插件的支持,默认开启。 新特性:VPC-ENI 支持自动获取节点 ENI 配额信息,去掉了自定义 ENI 配额的参数。 新特性:支持通过在Node上添加 Annotation network.cce.baidubce.com/node-eni-max-ips-num 指定节点上 ENI 的最大辅助 IP 数量。 |
无 |
v2.9 | CCE/v1.18+ | 2023.11.10 | 新的 CRD: 支持集群级 psts ClusterPodSubnetTopologyStrategy (cpsts),单个cpsts 可以控制作用于整个集群的 psts 策略。 CRD 字段变更: NetworkResourceSet 资源池增加了节点上 ENI 的异常状态,报错单机 IP 容量状态,整机 ENI 网卡状态。 新特性: 支持ubuntu 22.04 操作系统,在容器网络环境下,定义 systemd-networkd 的 MacAddressPolicy 为 none。 新特性:支持 pod 级 Qos。 |
无 |
详细版本变更记录
2.13 (2024/08/01)
新特性功能:
- 支持 eri 全生命周期管理
- 支持使用 rdma 的容器通过申请的资源来决定选择使用 HPC 或 ERI 子设备
2.13.0 (2024/08/01)
- [Feature]支持 eri 全生命周期管理
- [Feature]支持使用 rdma 的容器通过申请的资源来决定选择使用 HPC 或 ERI 子设备
2.12
新特性功能:
- 支持 Burstable ENI 池,有效避免子网 IP 资源紧张时,节点 ENI 池资源不足的问题。
- 增加 ENI 安全组同步功能, 保持 CCE ENI 和节点安全组同步。
- 增加节点网络配置集功能 NetResourceConfigSet,支持指定节点独立配置网络资源。
- 增加对 HPAS 实例的支持
2.12.18 [20250801]
- [Bug] 修复 cce-network-v2 目录下的 Makefile,解决 make docker-arm 无法编译出 arm64 镜像的问题
- [Bug] 修改 CCEEndpoint GC 清理逻辑,由以 Pod 为中心的垃圾回收机制修改为以 IP 为中心的垃圾回收机制,解决因容器残留导致误清理 CCEEndpoint 对象,导致未释放 IP 被错误重用的问题
- [Optimize] 支持 Ubuntu 操作系统的 22.04 及以上所有版本的 MacAddressPolicy 参数修改为 None 并对其配置进行监控,以解决 Veth Pair 的 MacAddress 偶发被修改而导致的 Pod 网络不通的问题
- [Optimize] 优化 ENI 状态机的代码结构,增加 ENI 状态机的代码注释,删去了 ENI 在终态下的冗余处理
- [Optimize] 实现 webhook 支持 kubeclient 客户端参数可配置,并使 webhook 支持静态证书配置
- [Optimize] 优化 ENI 状态处理,当节点上 ENI 状态未 Ready 时,不使用当前的 ENI,并进行明显报错处理
- [Optimize] 优化 ENI 创建逻辑。当前节点上存在非删除状态,并且不是readyOnNode状态的eni时,不去创建新的eni
- [Optimize] 修改 cce-network-agent 的代码,当网卡在iaas侧存在,但是在节点上不存在时,增加bind和unbind操作,尝试自动解决网卡掉卡的问题
- [Optimize] 优化 cce-network-agent 的同步逻辑,设置新的 configmap 中的参数 agent-resource-resync-interval,作为单机 eni resync 的时间
- [Bug] 修复进行 Pod 创建过程中因为 calico 规则导致 IP 可用性检查失败的的问题
- [Bug] 修复 operator 中 nrs 控制器偶发的空指针问题
- [Bug] 创建网卡时识别ipv6支持与否,确认eni是否需要ipv6主IP
- [Optimize] 增加对弹性网卡的创建过程中,支持在操作系统驱动支持情况下,将网卡的 current hardware settings 中 ring buffer rx 与 tx 调整为与 pre-set maximum 一致
- [Bug] 修复 RDMA 场景下,容器删除时,roce 组件不能正确调用的问题
- [Bug] 修复 RDMA 场景下,当同命名空间同名 pod 短时间内删除重建并调度到同一节点时出现 IP 无法回收,pod 占用多组 RDMA IP 的问题
- [Bug] 修复 PSTS 场景下,同一 pod 多次申请 IP 导致泄漏的问题
- [Bug] 修复 PSTS 场景下,同一个 IP 在多个 eni cr上导致 pod 创建卡住的问题
- [Bug] 修复当 ipv6 模式下,由于弹性网卡 ipv6 网关 mac 地址不准确导致流量不通的问题
- [Bug] 修复弹性网卡在被改名后重新被 networkManager 纳管导致概率性 IP 丢失,从而导致 eni 初始化配置失败影响节点就绪的问题
- [Bug] 修复 eni-pre-allocate-num 参数不生效问题
- [Bug] 增加RDMA 类型 ENI状态容错,在发现有该类型的 CR 时直接为其加上 inuse 状态
- [Optimize] 优化nrs status 接口调用次数
2.12.17 [20250317]
- [Optimize] NRS Manager Resync 同步逻辑由串行执行修改为并发执行
- [Optimize] 弹性网卡和 NRS 状态逻辑由周期同步改为 ENI 成功创建后立即触发 NRS Manager Resync
- [Bug] 修复 k8s-client-qps 和 k8s-client-burst 参数不生效的问题
- [Bug] 修复 VPC-ENI 模式下,预期只纳管 CCE 创建的 ENI,而实际纳管了所有历史创建过的 ENI 的问题
- [Optimize] CreateInterface 计算逻辑优化,首次 Create ENI 时,增加强制从 K8s 获取预创建的 ENI 对象(CCE 添加节点时提前完成 ENI 及 IP 的申请并创建 ENI 对象),避免重复创建/查询 ENI,提升节点扩容就绪性能
- [Optimize] CreateInterface 计算逻辑优化,首次 Create ENI 时,增加强制从 IaaS 获取 ENI,避免非预期重复创建 ENI,减少 ENI 配额浪费,并提升节点就绪性能
- [Optimize] ENI 状态机增加对 ownerReference 的判断,对非 NRS 管理的 ENI 对象跳过状态机检查
- [Optimize] syncToAPIServer 新增 retry Trigger 逻辑,并将 IP 计算和同步到 k8s 最小重试间隔由 5s 改为 1s,解决高并发更新 NetworkResourceSet 失败导致必须走 Resync 周期间隔而引起的节点扩容就绪速度慢的问题
- [Optimize] 优化 ENI 对象的更新重试逻辑,解决因 ENI 对象更新失败时而导致必须走 Resync 周期间隔而引起的扩容速度慢的问题
- [Optimize] cce-network-agent list/watch 全量 NRS 对象改为只 watch 本节点的 NRS, 减少 watch 对象数量,提升启动性能
- [Optimize] cce-network-agent 检查 IP 缓存水位需求是否已完成分配的间隔由 5s 修改为 1s,提升节点就绪性能
- [Optimize] 修复 requireResync() 控制时许的置位逻辑,解决因 Resync 触发时未正确置位导致必须等待一个 resource-resync-interval 周期间隔而引起的节点扩容就绪速度慢的问题
- [Optimize] 新增 Pod 创建过程中在容器网络配置完成后对 IP 可用性的检查过程,并实现可配置重试的 IP 检查过程
2.12.16 [20250310]
- [Optimize] ENI 状态机优化,去掉了所有无效 statENI 解决大规模集群 Ready 慢问题,去掉了状态机中错误的置位解决必须依赖 ReSync 的问题
- [Bug] 修改自定义配置 api-rate-limit 限速不生效问题
- [Optimize] 减少 Trigger MinInterval 参数,解决大规模集群扩容速度慢的问题
- [Optimize] ENI 对象 VPCStatus 状态置位原子化,避免需要二次进状态机处理剩余状态
- [Optimize] 新增 enable-api-rate-limit 配置选项,开启或关闭客户端 API 限速功能,默认不开启
- [Bug] 修改 ENI 对象处理 finalizer 相关逻辑,解决清理 finalizer 不生效,导致 ENI 对象残留的问题
- [Optimize] 所有对象的 ListWatch 新增 options.AllowWatchBookmarks = true 配置,避免因网络抖动导致的全量 List 操作
- [Bug] 修复 RDMA 模式下,RDMA NRS 错用 bce-customer-max-ip 参数,导致 bce-customer-max-rdma-ip 参数不生效问题
- [Bug] 修复开启 RDMA 场景下,当 Node Name 大于 48 个字符时 RDMA ENI 对象的 LabelSelectorValue 赋值错误,解决当 Node Name 超长时重启 cce-network-operator 和 cce-network-agent 后节点无法就绪的问题
2.12.15 [20250227]
- [Optimize] 优化 NetworkresourceSet.Spec.Addresses 的添加规则,避免重复添加节点 IP
- [Bug] 修复 VPC-ENI 模式下,访问 ENI 接口失败时,误将 ENI 对象的 VPCStatus 标记为 None 的问题
- [Optimize] 创建/lib/systemd/network/98-default.link文件,监控并持续维持其macAddressPolicy为None,解决该参数被意外修改后导致 veth 的 mac 地址被非预期变更的问题
- [Bug] 修复 VPC-ENI 模式下,弹性网卡预挂载 eni-pre-allocate-num 配置在等于 eniQuota 时数量少一个的问题,增大重试次数避免 ENI 串行创建失败的问题
2.12.14 [20250213]
- [Bug] 修复 VPC-ENI 模式下的 remove ENI finalizer 更新逻辑,解决因节点删除时 ENI finalizer 未清理导致 ENI 对象残留的问题
- [Bug] 修复 VPC-ENI 模式下,因启动时序导致在 cce-network-operator 启动过程中, PSTS 固定 IP 跨节点分配时可能导致的 panic 问题
- [Bug] 修改开启 RDMA 场景下 List RDMA ENI 对象的 LabelSelectorValue 的拼装规则,解决当 Node Name 超长时因找不到对应的 RDMA ENI 对象而导致节点无法就绪的问题
- [Bug] 修复开启 RDMA 场景下,操作 RDMA ENI 对象偶发 fatal error: concurrent map read and map write 问题
- [Bug] 修复 VPC-ENI 模式下,在大量并发场景下偶发部分 ENI 的 MacAddress 为空,导致节点不 Ready 的情况
- [Bug] 修复 VPC-ENI 模式下,PSTS 自定义 TTL 参数无法生效,一直为默认值 168h0m0s 的问题
2.12.13 [20250122]
- [Bug] 修复 ReuseIP CEP 跨 ENI 重用时, ENI 对象未更新导致 ReuseIP 在 ENI对象上残留的问题,解决使用固定 IP 的 Pod IP 非预期变更的问题
- [Optimize] 优化 ubuntu22.04 中的 /lib/systemd/network/99-default.link 为 none,解决该参数被意外修改后导致 veth 的 mac 地址被非预期变更的问题
- [Bug] 修复 RDMA 场景下,请求 HPC 接口返回结果为 nil 时的空指针问题
- [Bug] 修复 VPC-ENI 模式下开启 RDMA 时的 Romote ENI Syncer 逻辑,纳管 CCE 历史创建的 ENI 时避免将 ENI 网卡错误识别为 RDMA ENI 导致 RDMA 网卡无法正常使用的问题
2.12.12 [20250121]
- [Bug] 修复 NetResourceConfigSet 对应的 ExtCniPlugins 字段修改不生效问题,支持节点维度的自定义自定义插件 ExtCniPlugins 字段配置
- [Feature] 增加对 HPAS 实例的支持
2.12.11 [20241227]
- [Bug] 修复 VPC-ENI 模式下,弹性网卡预挂载 eni-pre-allocate-num 配置不生效的问题
- [Bug] 修改开启 RDMA 场景下 RDMA ENI 对象本地缓存过期状态相关逻辑,解决因 resync nrs timeout 而导致的新增 RDMA 节点初始化慢,大规模集群扩容速度慢的问题
- [Optimize] 修改开启 RDMA 场景下 RDMA NetResourceSet 对象拼装规则,以及 ENI 对象的 LabelSelectorValue 的拼装规则,防止 RDMA NetResourceSet 名字超过限定值 253,防止 ENI 对象的 LabelSelectorValue 超过限定值 63,解决因 Node Name 超长而导致的 cce-network-agent panic 问题
- [Optimize] 修改 RDMA ENI 对象更新逻辑,解决因 NodeName 变更时 ENI 对象未正常销毁而导致的 RDMA ENI 对象无法被更新而导致的节点无法就绪的问题
- [Optimize] 优化开启 RDMA 模式时的 RDMA ENI 状态机处理逻辑,支持非终态 RDMA ENI 的处理流程,避免非终态状态 RDMA ENI 卡住节点 NotReady 无法恢复的问题
- [Optimize] 优化开启 RDMA 模式时,对 HPC OpenAPI 的请求逻辑,大幅降低请求频率,降低大规模集群下的 OpenAPI 请求压力
- [Bug] 修复创建 Node Interface 对象时因初始值未判断而导致的出现 Instance is out of interfaces 导致节点就绪慢的问题
2.12.10 [20241213]
- [Optimize] 优化 VPC-ENI 模式下的 veth 单机路由规则目的地址存在冲突的判断条件,解决残留本地路由规则时创建的 Pod 容器网络不通的问题
- [Optimize] 禁用 VPC-ENI 模式下的 IPv6 DHCP 时使用的网卡名修改为udev生成的原始名字,避免生成的网卡配置文件导致虚拟机重启时 network.service 服务启动失败
- [Bug] 更新 VPC-ENI 模式下的 ENI 状态机处理逻辑,修复当节点移出集群时,ENI 对象残留的问题
- [Bug] 修复 VPC-ENI 模式下的新建 ENI 网卡 borrow IP 地址时,borrow task ENIID 填写错误导致并发创建时可能引起的 borrow IP 计算错误
- [Optimize] 优化 VPC-ENI 模式下的 Romote ENI Syncer 逻辑,纳管 CCE 历史创建的 ENI,避免因历史创建的 ENI 无法被使用而占用 Node eniQuota 的问题
- [Optimize] 优化 VPC-ENI 模式下的 ENI 状态机处理逻辑,支持非终态 ENI 的处理流程,避免因状态机异常中断、重启丢失内存状态等原因导致的 ENI 状态处于异常的非终态而导致的该 ENI 无法正常使用的问题
- [Bug] PSTS 增加对 CEP TTL 未过期时直接移除 Node 或 ENI 导致 CEP 后续 TTL 过期后因无对应的 NetworkResourceSet 或 ENI 而无法正常删除时的清理逻辑
- [Bug] 修复 VPC-ENI 模式下 EBC ENI Quota 为 0 时,启用主网卡辅助IP的 ENI 赋值逻辑,避免因主网卡 ENI MacAddress 为空导致 cce-network-agent 无法启动的问题
- [Bug] 修改 VPC-ENI 模式下 ENI 对象本地缓存过期状态相关逻辑,解决因 resync nrs timeout 而导致的新增节点初始化慢,大规模集群扩容速度慢的问题
2.12.9 [20241121]
- [Bug] 修复 agent 在初始化 ENI 缺少 mac 地址时,会给 lo 网卡重命名的问题
- [Optimize] 修复 Node 不存在的异常场景时 Operator getEniQuota panic 问题
2.12.8 [20240924]
- [Bug] 增加 ENI 主 IP 获取流程,避免新节点缺少主 IP 无法就绪的问题
- [Bug] 增加 EBC 主网卡 IP 查询流程,避免新节点缺少主 IP 无法就绪的问题
- [Optimize] 增加 restore IP 流程的严格模式,严格模式下如果无法 restore IP 时,触发 agent 重启
- [Optimize] 优化 IP 借用规则,当主网卡已有辅助 IP 时,减少借用 IP 地址的数量
- [Bug] 修复 EBC 主网卡重复创建 ENI 的问题
2.12.7 [20240923]
- [Optimize] PSTS 增加对 CEP TTL 未过期时直接移除 ENI 导致 CEP 后续 TTL 过期后因无对应 ENI 而无法正常删除时的清理逻辑
- [Optimize] 增加 ENI 同步时不一致信息的差异对比日志,方便出现 ENI 数据不一致时排查问题
- [Optimize] 去掉 ERI 的独立同步逻辑,复用 ERI 和 ENI 的同步流程
- [Optimize] 去掉 Underlay RDMA 的独立同步逻辑,创建 underlay RDMA 网卡后,状态不再变更
- [Optimize] 去掉 BBC/EBC 主网卡状态机同步流程,ENI 状态不再变更
- [Optimize] 优化 ENI 同步流程,仅对 ENI 状态变更时同步,减少 IP 地址变更同步的消耗
2.12.6 [20240913]
- [Bug] 修复在 RDMA 场景查询子网为空,打印错误日志的问题
- [Bug] 修复在 VPC-Route 模式下,开启 RDMA 后,重启 Operator 进程会为 RDMA NRS 分配 podCIDR 的问题。
- [Optimize] PSTS 增加对未被 CCE 管理的跨子网 IP 地址的清理逻辑
2.12.5 [20240829]
- [Bug] 修复在 2.12.4 版本中同步 ENI 状态时丢失 IPv6 地址的问题。
- [Bug] 修复有多个 ENI 都存在待释放 IP 时,多次查询 ENI 顺序不一致影响 IP 标记流程导致无法释放 IP 的问题
- [Bug] 修复重复 Update NRS, 导致 Operation cannot be fulfilled 的问题
2.12.4 [2024/08/12]
- [Bug] 修复在 prepareIPs 阶段多余检查 borrowed subnet 是否有可借用 IP,影响正常 IP 地址申请的问题。
- [Bug] 修复 VPC-ENI 模式会申请超过 max-pods 个 IP 的问题
- [Optimize] 优化 prepareIPs 阶段对子网查询的逻辑,当无法获取子网信息时,不再继续进行后续操作。
- [Optimize] 优化 prepareIPs 阶段对子网查询的逻辑,当 BCC 实例的 ENI 处于非 inuse 状态时,拒绝执行 IP 预备任务。
2.12.3 [20240730]
- [Bug] 修复 CPSTS 配置 namespaceSelector 时误判断 Selector 导致没有配置 namespaceSelector 时的空指针问题及 namespaceSelector 在没有配置 Selector 时无法生效的问题
- [Optimize] 优化 PSTS 在没有填写子网 IP 选择策略时的本地 IP 申请器的默认工作区间,避免没有填写 IP 地址族时无法申请 IP 的问题
- [Bug] 修复 cilium ipam 保留 IP 时无法保留首个 IP 的问题
2.12.2 [2024/07/24]
- [Feature] 支持 borrowed subnet 可观测,新增 cce_subnet_ips_guage 指标代表子网可用 IP 地址数量
- [Optimize] borrowed subnet 支持定时同步能力,避免因单次 IP 计算错误,导致错误借用未归还的问题。
- [Optimize] 更新子网可用 IP 借用语义,单个 ENI 从子网借用 IP 地址数以最新一次为准
2.12.1 [2024/07/02]
- [Bug] 修复 bbc 机型开启 burstable ENI 时,初始化会导致空指针的问题
- [Bug] 修复 bbc ENI 不返回实例 id 时,无法选中 ENI 的,影响节点就绪时间的问题
2.12.0 [2024/06/28]
- [Feature] 支持 Burstable ENI 池,有效避免子网 IP 资源紧张时,节点 ENI 池资源不足的问题。
- [Feature] 新增子网不足导致 ENI 创建失败 metrics 指标
- [Feature] 增加 eni 安全组同步功能, 保持CCE ENI 和节点安全组同步
- [Feature] 优化Pod调度算法,增加节点 ip capacity 自动适配,避免节点 IP 地址资源浪费
- [Feature] 增加节点网络配置集功能 NetResourceConfigSet,支持指定节点独立配置网络资源
- [Optimize] 修复 psts 对象在使用enableReuseIPAddress时可能更新 cep 时Addressing为空,不能记录错误信息的问题
- [Optimize] 优化 operator 事件积压问题,避免事件长期超时积压
- [Optimize] agent 优化 IP 地址 gc 算法,在达到 gc 周期后,支持按照 IP 地址清理已变更 cep 遗留地址的能力
- [Optimize] 将动态 cep 与 nrs 生命周期绑定,减少 agent 被杀死的缩容时,遗留的 cep 对象数
- [Optimize] 优化 rdma IP 申请流程,避免rdma 使用固定 IP 的 cep
2.11 (2024/5/27)
新特性功能:
- 新特性:容器内支持分配 RDMA 子网卡及 RDMA 辅助IP。
2.11.3 [未发布]
- [Feature]
--endpoint-gc-interval
增加控制 agent 更新 nrs 的最小间隔时间 - [Optimize] 优化对 eni 重启事件的处理逻辑,优化 agent 重启速度
- [Optimize] 对 bce ENI 的 IP 地址做重排序,减少非必要 ENI 更新事件
- [Bug] 优化手工删除subnet情况下StartSynchronizingSubnet可能遇到空指针
2.11.2 [20240616]
- [Bug] 修复 nrs 删除后,仍会不断错误重试的问题,持续新建 eni 的问题
- [Bug] 修复 agent 重启后,restore 失败的问题
- [Feature] VPC-ENI 增加 ehc 机型支持
- [Optimize] cce-network-operator 增加 alloc-worker ,可配置并发处理 nrs 对象协程数
- [Optimize] 优化 rdma 默认预申请 13 个 IP,最大空闲 IP 数为 104 个,避免频繁申请与释放 IP。
- [Bug] 修复 rdma 释放 IP 时可能遇见的空指针问题
- [Optimize] 优化 ebc 主机新建子网逻辑,非主网卡辅助 IP 模式时,不再校验主网卡子网
- [Optimize] 去除多余 operator 日志,减少 operator 占用资源
- [Optimize] 重启 agent 时,更新最新的子网信息,避免重启后子网信息不一致
- [Optimize] 缩小 operator 中非必要的锁范围,提升 operator 处理性能
- [Optimize] 增加触发器强制结束时间,避免单个节点卡主影响整体同步
- [Optimize] 增加 HPC eni OpenAPI接口限流
- [Optimize] 合并 rdma 和以太网资源同步器,减少重复同步带来的资源开销
- [Feature] 增加 IP 释放回收控制开关,默认不会回收 ENI IP
- [Bug] 修复节点偶发 maintainIPPool 方法得不到调用,节点无法同步问题
- [Bug] 修复bcesync map 并发访问问题
- [Optimize] 子网IP不足时,Event增加对应Request ID
- [Feature] 增加 trigger 触发器指标粒度,细化到节点
2.11.1 [20240611]
- [Optimize] 更新RDMA IPPool MinAllocateIPs/PreAllocate/MaxAboveWatermark参数配置方式,与VPC-ENI保持一致方式
- [Optimize] 保持RDMA网卡原始名称,不再rename RDMA网卡,避免Node上RDMA相关策略路由丢失
- [Bug] 修复VPC路由下缺失ENISpec导致RDMA Discovery启动失败
- [Bug] 修复ENI对象中RDMA网卡状态不同步问题
- [Bug] 修复RDMA网卡最大IP数计算错误,优化报错信息
- [Bug] 修复roce插件被误判为用户自定义插件
2.11.0 [20240527]
- [Feature] 新特性:容器内支持分配 RDMA 网卡。 a. 支持单容器分配除VPC内以太网网卡之外,分配 RDMA 网卡的能力,分别支持 ERI 和 eRDMA 网卡。 b. 容器使用RDMA网卡为共享模式,单Node内的所有使用 RDMA 资源的容器共享 RDMA网卡,每个RDMA网卡创建子设备并在容器内有独立的 RDMA IP。
2.10 (2024/03/05)
新特性功能:
- 新特性:支持 VPC-ENI 模式下的 EBC 主网卡辅助 IP 模式。
- 新特性:重构 CNI 配置文件管理逻辑,支持保留自定义 CNI 插件配置。
- 新特性:增加对portmap 插件的支持,默认开启。
- 新特性:VPC-ENI 支持自动获取节点 ENI 配额信息,去掉了自定义 ENI 配额的参数。
- 新特性:支持通过在Node上添加 Annotation
network.cce.baidubce.com/node-eni-max-ips-num
指定节点上 ENI 的最大辅助 IP 数量。
2.10.4/2.10.5 [202405011]
- [Bug] 修复 VPC-ENI 模式下,单机最大 IP 地址容量计算错误的问题
2.10.3 [20240425]
- [Bug] 修复 ResyncController 已经添加EventHandler 时,informer 重复添加处理器, psts 会收到重复事件会导致 IP 地址冲突的问题
2.10.2 [20240403]
- [Bug] 修复 vpc-route 模式下,重写 cni 文件错误问题
2.10.1 [20240325]
- [Bug] 修复 vpc-route 模式下,重启 operator 可能导致多个节点的 cidr 重复的问题
- [Bug] 修复调用 bce sdk 出错时,可能出现的stack overflow,导致operator重启的问题
- [Optimize] vpc-eni 增加 mac 地址合法性校验,避免误操作其它网卡
2.10.0 (2024/03/05)
- [Feature] VPC-ENI 支持自动获取节点 eni 配额信息,去掉了自定义 ENI 配额的参数。
- [Feature] VPC-ENI 支持 ebc 主网卡辅助 IP 模式
- [Feature] VPC-ENI bbc 升级为主网卡辅助 IP 模式
- [Optimize] 增加 CNI 插件日志持久化
- [Feature] 重构 CNI 配置文件管理逻辑,支持保留自定义 CNI 插件配置
- [Feature] 增加对portmap 插件的支持,默认开启
- [Feature] 支持通过在Node上添加 Annotation
network.cce.baidubce.com/node-eni-max-ips-num
指定节点上 ENI 的最大辅助 IP 数量。 - [Bug] 修复arm64架构下,cni 插件无法执行的问题
- [Optimize] 增加 BCE SDK 日志持久化
- [Optimize] 优化去掉 bce sdk 的退避重试策略,避免频繁重试
- [Optimize] 支持使用
default-api-timeout
自定义参数指定 bce openAPI 超时时间
2.9 (2023/11/10)
新特性功能:
- 新的 CRD: 支持集群级 psts ClusterPodSubnetTopologyStrategy (cpsts),单个cpsts 可以控制作用于整个集群的 psts 策略。
- CRD 字段变更: NetworkResourceSet 资源池增加了节点上 ENI 的异常状态,报错单机 IP 容量状态,整机 ENI 网卡状态。
- 新特性: 支持ubuntu 22.04 操作系统,在容器网络环境下,定义 systemd-networkd 的 MacAddressPolicy 为 none。
- 新特性:支持 pod 级 Qos
2.9.5 [20240325]
- [Bug] 修复 vpc-route 模式下,重启 operator 可能导致多个节点的 cidr 重复的问题
- [Bug] 修复调用 bce sdk 出错时,可能出现的stack overflow,导致operator重启的问题
2.9.4 [20240305]
- [Feature] 支持 BBC 实例通过 Node 上增加
network.cce.baidubce.com/node-eni-subnet
Anotation 配置指定节点上 ENI 的子网。
2.9.3 [20240228]
- [Feature] cce-network-agent 自动同步节Node的Annoation信息到CRD中。
- [Feature] 支持 EBC/BCC 实例通过 Node 上增加
network.cce.baidubce.com/node-eni-subnet
Anotation 配置指定节点上 ENI 的子网。 - [Feature] 新增
enable-node-annotation-sync
参数,默认关闭。 - [Bug] 修正预申请 IP 时,可新建 ENI 的数量计算错误。
2.9.2 [20240223]
- [Bug] 修复arm64架构下,cni 插件无法执行的问题
2.9.1 [20240115]
- [Optimize] 优化NetResourceManager在接收事件时处理的锁,消除事件处理过程中 6 分钟延迟
- [Optimize] 优化ENI状态机同步错误时,增加 3 次重试机会,消除因 ENI 状态延迟导致的 10 分钟就绪延迟
- [Bug]修复 cce-network-agent 识别操作系统信息错误的问题
- [Bug]修复cce-network-agent pod 被删除后,小概率导致 operator 空指针退出问题
- [Bug]修复创建 eni 无法向 nrs 对象上打印 event 的问题
2.9.0 [20240102]
- [Optimize] 申请 IP 失败时,支持给出失败的原因.包括: a. 没有可用子网 b. IP 地址池已满 c. 节点 ENI 池已满 d. 子网没有可用 IP e. IP 缓存池超限
- [Feature] 新增 CRD: ClusterPodSubnetTopologyStrategy (cpsts), 用于控制集群级别的 psts 策略。 a. 当前 crd 版本 cce.baidu.com/v2beta1 b. cpsts 支持为所有符合namespaceSelector的 namespace 配置 psts 策略,并作为自身的子对象管理生命周期和状态。
- [Feature]支持ubuntu 22.04 操作系统,在容器网络环境下,定义 systemd-networkd 的 MacAddressPolicy 为 none。
- [Feature]支持 pod 级别的带宽控制,通过在 Pod 上设置 annotation 控制 Pod 级别的带宽。
a.
kubernetes.io/ingress-bandwidth: 10M
配置 Pod 的 ingress 带宽为 10M b.kubernetes.io/egress-bandwidth: 10M
配置 Pod 的 egress 带宽为 10M - [Feature]支持 pod 级别的 QoS,通过在 Pod 上设置 annotation 控制 Pod 的 QoS。
a.
cce.baidubce.com/egress-priority: Guaranteed
配置 Pod 的流量为 Guaranteed (最低延迟)优先级 b.cce.baidubce.com/egress-priority: Burstable
配置 Pod 的流量为 Burstable (高优先级) c.cce.baidubce.com/egress-priority: BestEffort
配置 Pod 的 egress 流量为低优级 - [Optimize] 修改 --bce-customer-max-eni 及 --bce-customer-max-ip 参数的逻辑,当参数非 0 时,强制生效
- [Bug] 修复独占eni模式下容器网络命名空间挂载类型为tmpfs 时,无法读取netns的问题
- [Feature] 增加override-cni-config开关,默认在 agent 启动时强制覆盖 cni 配置文件
- [Feature] psts 复用 IP 时增加亲和性调度功能,保证同名 Pod 重复调度时,可以调度到同一可用区服用子网。
- [Optimize] 优化并发创建 ENI 逻辑,避免在业务无需过多 IP 时并发创建过多 ENI
- [Optimize] 优化 ENI 命名长度,限制为 64 字符
- [Bug] 修复VPC-ENI 并发申请和释放IP 时,Pod 可能申请到过期的 IP 地址的问题
2.8 (2023/08/07)
- 正式发布容器网络v2版本
2.8.8 [20231227]
- [Bug] VPC-ENI 并发申请和释放IP 时,Pod 可能申请到过期的 IP 地址
2.8.7 [20231127]
- [Bug] 修复 cce-network-v2-config 中 --bce-customer-max-eni 及 --bce-customer-max-ip 参数配置不生效;未限制并发创建 ENI ,并发下最大 ENI 数量可能超发
2.8.6 [20231110]
- [Bug] 优化 EndpointManager 在更新 endpoint 对象时不会超时的逻辑,且由于资源过期等问题会出现死循环的问题
- [Optimize] 优化 operator 工作队列,支持自定义 worker 数量,加速事件处理
- [Optimize] EndpointManager 核心工作流日志,把关键流程日志修改为 info 级别
- [Optimize] 优化EndpointManager gc工作流,动态 IP 分配的 gc 时间设置为一周
- [Optimize] 增加 ENI VPC 状态机流转时没有触发状态变更时重新入队时间,加速 ENI 就绪时间
- [Optimize] 增加增删 ENI 状态变更事件,增加 ENI 的 VPC 非终态日志记录
- [Optimize] 缺少 metaapi 时,记录相关事件
- [Optimize] 当VPC路由满,记录相关事件
2.8.5 [20241017]
- [Optimize] 优化了 psts 分配 IP 时失败的回收机制,避免出现 IP 泄露
- [Bug] 修复 vpc 路由模式下 nrs 标记 deleteTimeStamp 之后,由于 vpc 路由状态处于 released,nrs 的 finallizer 无法回收的问题
- [Optimize] 优化创建 cep 的逻辑,当创建 cep 失败时,尝试主动删除并重新创建 cep
2.8.4 [20230914]
- [Bug] vpc-eni,修复在 centos 8等使用 NetworkManager 的操作系统发行版,当 ENI 网卡被重命名后,DHCP 删除 IP 导致 ENI 无法就绪的问题
2.8.3 [20230904]
- [Feature] 支持kubelet删除cni配置文件后,重新创建配置文件
- [Feature] network-agent支持开启pprof,并获取mutex和block数据
- [Optimize] 去掉network-agent在申请IP时的填充锁
- [Bug] 修复network-agent的默认限流配置
2.8.2 [20230829]
- [Optimize] 提升创建ENI的性能,缩短nrs任务管理时间
- [Optimize] 增加并发预创建eni的逻辑,当单机未达到预加载eni数时,并发创建eni
- [Bug] 修复创建ENI时,使用eni名字查询eni对象为空,使每个ENI最少需要1m创建时间的问题