You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
容器网络
基于 Trunk ENI 支持 Pod 独占弹性网卡
复制全文
下载 pdf
基于 Trunk ENI 支持 Pod 独占弹性网卡
大规模场景可以通过独占网卡提升 Pod 间网络通信的性能表现,同时也可以为 Pod 网卡绑定独立的安全组,解决 Pod 间网络隔离的场景需求。本文为您介绍如何配置 Pod 独占弹性网卡。​
说明​
【邀测·申请试用】:该功能目前处于邀测阶段,如需使用,请提交申请。​
背景信息​
容器服务支持在 VPC-CNI 网络模型的集群中开启 Trunk ENI 模式,在 Trunk ENI 节点中为 Pod 提供独占弹性网卡资源,并指定 Pod 的子网和安全组。​
大规模场景可以通过独占网卡提升 Pod 间网络通信的性能表现,同时也可以为 Pod 网卡绑定独立的安全组,解决 Pod 间网络隔离的场景需求。Trunk ENI 特性的主要能力如下:​
  • 支持 Pod 主网卡独占 Trunk ENI 能力,基于安全组提供网卡级别的网络流量隔离能力。​
  • 支持指定自定义网段为 Pod ENI 分配 IP,满足精细化流量隔离需求场景。​
  • ​alt​​
配置 Pod 独占弹性网卡涉及的 CRD 资源对象包括:​
  • VPCENIDefinition 对象:用来定义 ENI 的 VPC IPAM 配置信息。包括 VPC ID、IP 分配模式、安全组、子网 ID 等。​
  • PodNetworkDefinition 对象:用来定义 Pod 的网络配置,包含所使用的 IPAM 信息,Pod 选择信息等。​
  • ​alt​​
使用限制​
  • 仅支持在 VPC-CNI 容器网络模型的集群中使用。​
  • 开启 Trunk ENI 特性后,节点会占用一张 ENI 作为 Trunk 网卡。因此 Pod 可申请使用的共享 IP 数会对应减少。​
  • 使用 Trunk ENI 特性无法预先申请网卡,因此与共享 IP 相比,创建和删除的速度会有一定下降。​
  • Pod Name 必须小于等于 63 字符。​
操作步骤​
步骤一:开启 Trunk ENI​
​
创建集群时开启
存量集群开启
​
说明​
本文仅介绍创建集群时开启 Trunk ENI 的关键配置,包括:开启 Trunk ENI 配置、安装 vpc-cni-controlplane 组件。创建集群的其他详细配置,请参见:创建集群。​
  1. 在集群管理页面的左侧导航栏,选择 集群。​
  1. 在集群列表页面,单击左上角 创建集群,跳转到集群创建页面的 集群配置 步骤,完成后单击 下一步:节点池配置。​
  • ​​​
  • 关键配置项如下,其他参数按需配置即可。​
  • ​
    配置项​
    说明​
    容器网络模型​
    配置集群的容器网络(CNI)方案,本场景必须选择 VPC-CNI。​
    Trunk ENI​
    默认未勾选。勾选后,可基于 Trunk ENI 支持 Pod 独占弹性网卡,提供 Pod 绑定安全组、指定子网调度等高级能力。本场景必须 勾选 此配置。​
    ​
  1. 在 节点池配置 步骤,按需配置即可,完成后单击 下一步:组件配置。​
  1. 在组件配置步骤,将默认安装 vpc-cni-controlplane 组件,其他组件按需配置即可,完成后单击 下一步:确认配置。​
  • ​​​
  1. 确认新建集群信息和计费准确无误后,阅读 《容器服务专用服务条款》 并勾选同意,单击 确定 ,开始创建集群。​
​
步骤二:创建 VPCENIDefinition 对象​
创建 VPCENIDefinition 对象,配置示例和重点参数说明,如下所示:​
​
apiVersion: network.volcengine.com/v1beta1​
kind: VPCENIDefinition​
metadata:​
name: vpceni-default # 自定义 VPCENIDefinition 对象名称​
namespace: default​
spec:​
vpcID: vpc-rr1s2d*** # 必选,集群所属私有网络(VPC)的 ID​
allocateType:​
type: Elastic # 必选,IP 分配模式,Elastic 表示弹性分配模式​
securityGroupIDs: ​
- sg-rrhowl*** # 必选,Pod 默认安全组 ID​
subnetIDs:​
- subnet-13f64*** # 必选,指定 VPC 中的子网 ID。包括:集群 Pod 子网中的部分或全部子网、集群 Pod 子网中未指定但属于指定 VPC ID 的其他子网 ID​
- subnet-13fy9***​
​
spec字段中的详细参数说明如下所示。​
​
参数​
​
是否必选​
说明​
vpcID​
-​
是​
集群所属私有网络(VPC)ID。​
allocateType​
type​
是​
IP 分配模式,本例中配置为 Elastic,表示弹性 IP 策略。Pod 删除后,IP 资源会同步释放。​
securityGroupIDs​
-​
是​
Pod 安全组 ID。允许配置多个安全组,配置多个安全组时将同时生效。​
subnetIDs​
-​
是​
配置 VPC 中的子网 ID,允许配置多个子网 ID。包括:集群 Pod 子网中的部分或全部子网、集群 Pod 子网中未指定但属于指定 VPC ID 的其他子网 ID。​
​
步骤三:创建 PodNetworkDefinition 对象​
创建 PodNetworkDefinition 对象,配置示例和重点参数说明,如下所示:​
​
apiVersion: network.volcengine.com/v1beta1​
kind: PodNetworkDefinition​
metadata:​
name: vpceni1 # 自定义 PodNetworkDefinition 对象名称​
namespace: default # PodNetworkDefinition 对象所在的命名空间​
spec:​
ipResource:​
name: vpceni-default # 自定义的 VPCENIDefinition 对象名称,与上一步中配置的一致​
type: VPCENIDefinition # 必选,指定网络资源类型,固定值​
selectors:​
- podSelector:​
matchLabels:​
foo: bar # 自定义 Pod 标签,用于匹配指定的 Pod,实现 Pod 独占弹性网卡​
namespaceSelector:​
matchLabels:​
foo: bar # 自定义的 Namespace 标签,用于匹配指定的 Namespace,为 Namespace 中的全部 Pod 提供独占网卡能力​
​
spec字段中的详细参数说明如下所示。​
​
参数​
​
是否必选​
说明​
ipResource​
name​
是​
指定网络资源的名称,需要与 VPCENIDefinition 对象的配置一致。​
​
type​
是​
指定网络资源的类型,固定为VPCENIDefinition。​
selectors​
podSelector​
否​
用于匹配 Pod 的 Labels,匹配的 Pod 在创建时将使用ipResource指定的网络资源。​
​
namespaceSelector​
否​
用于匹配 Namespace 的 Labels,匹配的 Namespace 中所有 Pod 在创建时都将使用ipResource指定的网络资源。​
​
注意​
  • podSelector和namespaceSelector非必选,允许基于期望的匹配方式配置。但至少需要配置 1 个参数,否则功能无法生效。​
  • selectors为 List 结构,支持配置多个命名空间标签和 Pod 标签。每个 Item 支持同时配置命名空间标签和 Pod 标签。​
  • 配置多个 Item 时,每个 Item 内部为 交集 关系。如果您同时配置了命名空间标签和 Pod 标签,则只有 Pod 和其所在的命名空间同时匹配上对应的标签时,Pod 才会被分配弹性网卡。​
  • 配置多个 Item 时,多个 Item 之间为 并集 关系。如果您同时配置了多个 Item,则 Pod 只要匹配上任意一个 Item 定义的标签,Pod 就会被分配弹性网卡。​
步骤四:配置 Pod 独占弹性网卡​
系统支持以下方式配置 Pod 独占弹性网卡,包括:​
  • 命名空间标签:通过匹配 Namespace 的标签,为 Namespace 中的全部 Pod 提供独占网卡能力。​
  • Pod 标签:通过匹配 Pod 的标签,为指定 Pod 提供独占网卡能力。​
​
配置命名空间标签
创建 Pod 并添加标签
创建工作负载并添加标签
​
您可以在创建命名空间时,添加 PodNetworkDefinition 对象中定义的标签(例如:foo: bar),为 Namespace 中的全部 Pod 提供独占网卡能力。示例如下:​
​
apiVersion: v1​
kind: Namespace​
metadata:​
name: namespace-demo # 命名空间的名称​
labels:​
foo: bar # 添加 PodNetworkDefinition 对象中定义的标签​
​
​
结果验证​
配置完成后,匹配 PodNetworkDefinition 对象 Label 的 Pod 被系统自动补全 Pod Annotation(包括:ENI request/limit),Pod 将被调度到支持 Trunk 的节点上,并为 Pod 配置独占弹性网卡。​
如下图所示,系统自动补全 Annotation k8s.volcengine.com/network-status,则表示已经为 Pod 配置独占弹性网卡。​
​​​
在 Pod 详情页面,选择 网卡 页签,可以查看独占网卡的相关信息。​
​​​
​
​
​
最近更新时间:2026.06.10 12:06:44
这个页面对您有帮助吗?
有用
有用
无用
无用