获取CCE Turbo集群中Pod使用的网卡信息
在CCE Turbo集群中,每个Pod会绑定独立的弹性网卡(ENI)/辅助弹性网卡(Sub-ENI),该过程由网络模型插件自动执行,如果集群中的Pod数量较多,网卡的数量也会同步增加。在某些场景中,您可能因为业务需求需要获取Pod使用的网卡信息。例如,进行网络监控或故障排除时,了解Pod的网卡ID可以帮助您更精确地定位问题,或者在某些场景下,您可以根据网卡信息进行自定义的配置管理。
本文档介绍如何在Pod的注解中获取Pod网卡的详情,该功能支持以下两个维度配置:
- 全局配置:所有Pod显示网卡信息,即在YangtseConfiguration中开启enablePodNetworkStatus参数,具体操作步骤请参见全局配置:所有Pod显示网卡信息。
- 按需配置:指定Pod显示网卡信息,即在指定Pod中配置yangtse.io/enable-pod-network-status注解,具体操作步骤请参见按需配置:指定Pod显示网卡信息。
配置不同层级的开关时,其生效逻辑如下表所示:
全局配置:所有Pod显示网卡信息 |
按需配置:指定Pod显示网卡信息 |
最终Pod是否显示网卡信息 |
---|---|---|
开启(true) |
开启(true) |
显示 |
开启(true) |
关闭(false) |
不显示 |
开启(true) |
未设置 |
显示 |
关闭(false) |
开启(true) |
显示 |
关闭(false) |
关闭(false) |
不显示 |
关闭(false) |
未设置 |
不显示 |
约束与限制
- 仅CCE Turbo集群支持该功能,且集群版本需满足以下要求:
- v1.27集群:v1.27.16-r50及以上版本
- v1.28集群:v1.28.15-r40及以上版本
- v1.29集群:v1.29.15-r0及以上版本
- v1.30集群:v1.30.14-r0及以上版本
- v1.31集群:v1.31.10-r0及以上版本
- v1.32集群:v1.32.6-r0及以上版本
- v1.33及以上版本
- 该功能在大规模批量创建Pod场景下会对Pod的启动性能产生影响。
操作步骤

开启/关闭全局配置后,存量Pod需要重启后才能显示/不显示网卡信息。
- 请参见通过kubectl连接集群,使用kubectl工具连接到您的集群。
- 编辑YangtseConfiguration资源,执行命令:
kubectl patch yc default --type='merge' -p '{"spec":{"eni":{"enablePodNetworkStatus":true}}}'
如果需要关闭全局配置,可将以上命令修改为:
kubectl patch yc default --type='merge' -p '{"spec":{"eni":{"enablePodNetworkStatus":false}}}'
- 创建一个名为nginx.yaml的文件。其中,nginx.yaml为自定义名称,您可以随意命名。
vi nginx.yaml
文件示例如下:
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - image: nginx:latest name: container-0 resources: limits: cpu: 100m memory: 200Mi requests: cpu: 100m memory: 200Mi imagePullSecrets: - name: default-secret
- 创建Pod。
kubectl create -f nginx.yaml
回显如下:
pod/nginx created
- Pod创建完成后,可以使用以下命令查询Pod的状态,该Pod将在annotation中自动获取并显示网卡信息。
kubectl get pod nginx -o yaml
回显如下:
其中:
- name:Pod使用的容器网络配置名称。
- portID:Pod使用的网卡ID。
- ips:该网卡的IP地址。
- 请参见通过kubectl连接集群,使用kubectl工具连接到您的集群。
- 创建一个名为nginx.yaml的文件。其中,nginx.yaml为自定义名称,您可以随意命名。
vi nginx.yaml
文件示例如下:
apiVersion: v1 kind: Pod metadata: name: nginx annotations: yangtse.io/enable-pod-network-status: "true" # 开启显示网卡信息 spec: containers: - image: nginx:latest name: container-0 resources: limits: cpu: 100m memory: 200Mi requests: cpu: 100m memory: 200Mi imagePullSecrets: - name: default-secret
- 创建Pod。
kubectl create -f nginx.yaml
回显如下:
pod/nginx created
- Pod创建完成后,可以使用以下命令查询Pod的状态,该Pod将在annotation中自动获取并显示网卡信息。
kubectl get pod nginx -o yaml
回显如下:
其中:
- name:Pod使用的容器网络配置名称。
- portID:Pod使用的网卡ID。
- ips:该网卡的IP地址。