- 文档首页
容器服务
容器服务 VKE
最佳实践
网络
配置节点级容器网络参数
配置节点级容器网络参数
节点级容器网络参数用于为不同节点指定差异化的 Pod 网络配置,实现更细粒度的网络隔离与资源管理,本文介绍如何在 VKE 集群中配置节点级容器网络参数并完成结果验证。
在 VKE 集群中,vpc-cni 组件中的 cello 负责进行 Pod 网络管理,包括:为 Pod 分配 IP 地址、绑定弹性网卡 ENI(Elastic Network Interface)等。在默认情况下,cello 的各项网络配置(例如 Pod 子网、安全组、ENI Quota、NetworkMode 等)均为集群级(Cluster Scope)配置,即集群中的节点使用共用同一份网络配置(cello-config)。更多详情,请参见 vpc-cni。 集群级配置能满足大多数场景,但当集群内节点承载的业务差异较大时,这种统一的全局配置也会面临很多问题。例如:部分节点运行高密度 Pod、需要更激进的 IP 池化策略来加速 Pod 启动;部分节点承载特定业务、需要划分到独立的 Pod 子网或绑定专属安全组以满足网络隔离和安全合规要求;不同规格的节点对 ENI Quota 的需求也不尽相同等。
为解决上述问题,VKE 支持节点级(Node Scope)的网络配置,您只需要自定义一份专属网络配置(ConfigMap),并在目标节点池或节点上使用 Label 指定该配置,即可实现节点级的差异化配置。该方案具备以下优势:
- 精细化管控:以节点为最小粒度调整网络参数,无需为个别特殊节点改动全集群配置,避免"牵一发而动全身"。
- 灵活适配差异化业务:可针对不同业务节点分别设置 IP 池化策略、Pod 子网、安全组等,满足混合部署下的隔离与合规需求。
- 平滑兼容存量集群:节点级配置以"覆盖"方式生效,不影响未打 Label 的存量节点,变更风险可控。
使用限制
- 仅 VPC-CNI 网络模型集群,支持配置节点级容器网络参数。
- 该配置默认仅对节点池中的新建节点生效;若需让存量节点生效,需要重启对应节点上的 vpc-cni 组件 Pod,由于重启可能影响已有业务运行,因此不建议直接在承载现网业务的存量节点上启用该功能。
前提条件
- 已创建 VPC-CNI 网络模型的集群。详情请参见 创建托管集群。
- 已升级 vpc-cni 组件至 v1.6.0 及以上版本。详情请参见 vpc-cni。
- (可选)如需配置 Pod 安全组和子网,需在集群所属私有网络(VPC)内。已完成创建自定义的安全组和子网。详情请参见 创建安全组、创建子网。
操作步骤
- 通过 kubectl 连接目标集群。详细操作,请参见 连接集群。
- 创建节点级容器网络参数的 ConfigMap。示例文件node-config.yaml代码如下:
- 为节点池添加 节点标签,指定上一步创建的 ConfigMap。节点池的更多参数说明,请参见 编辑节点池。
- 标签键为vke.volcengine.com/vpc-cni-config。
- 标签值为kube-system.node-config1,其中kube-system和node-config1分别为 ConfigMap 的名称和所属命名空间。
-
注意
如果出现 指定的配置项格式不正确 的错误提示,请自行通过 JSON 校验器检查 ConfigMap 中conf字段的格式。
配置完成后,您可以扩容节点池,确认新扩容出的节点,是否使用了指定的节点级网络配置。本文以节点级子网和安全组为例。
- 扩容节点池,使新扩容出的节点弹性网卡(ENI)能够使用指定 ConfigMap 中配置的安全组和子网。扩容节点池相关操作,请参见 扩缩容节点池。
- 本文以扩容一个新节点为例,如下图所示,扩容出名称为 node-qp6k6s 的节点。
-
- 查看新扩容出的节点 ENI 是否使用了指定的子网和安全组。
- 在实例详情页面的 网卡 页签,查看具有volc:vke:created-by=cello标签的辅助 ENI 是否使用了指定的安全组和子网。
-
- 将业务 Pod 调度到目标节点上。在实际业务中使用节点池级别 Pod 安全组和子网。
- 本文以配置无状态负载(Deployment)的节点亲和调度为例,将 Pod 调度到 Label 为vke.volcengine.com/vpc-cni-config: kube-system.node-config1的节点池内的 node-qp6k6s 节点上。配置无状态负载相关说明,请参见 管理无状态负载。
-
最近更新时间:2026.08.31 15:13:06