
# 获取CCE Turbo集群中Pod使用的网卡信息
在CCE Turbo集群中，每个Pod会绑定独立的弹性网卡（ENI）/辅助弹性网卡（Sub-ENI），该过程由网络模型插件自动执行，如果集群中的Pod数量较多，网卡的数量也会同步增加。在某些场景中，您可能因为业务需求需要获取Pod使用的网卡信息。例如，进行网络监控或故障排除时，了解Pod的网卡ID可以帮助您更精确地定位问题，或者在某些场景下，您可以根据网卡信息进行自定义的配置管理。
本文档介绍如何在Pod的注解中获取Pod网卡的详情，该功能支持以下两个维度配置：
- 全局配置：所有Pod显示网卡信息，即在YangtseConfiguration中开启enablePodNetworkStatus参数，具体操作步骤请参见[全局配置：所有Pod显示网卡信息]。
  ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/caution_3.0-zh-cn.png)
  严禁修改YangtseConfiguration中的其他参数，否则可能会导致集群不可用等严重问题。
  
- 按需配置：指定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显示网卡信息]
  
  ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
  开启/关闭全局配置后，存量Pod需要重启后才能显示/不显示网卡信息。
  1. 请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)，使用kubectl工具连接到您的集群。
  
  2. 编辑YangtseConfiguration资源，执行命令： 
     ```
     kubectl patch yc default --type='merge' -p '{"spec":{"eni":{"enablePodNetworkStatus":true}}}'
     ```
     ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
     如果需要关闭全局配置，可将以上命令修改为：
     ```
     kubectl patch yc default --type='merge' -p '{"spec":{"eni":{"enablePodNetworkStatus":false}}}'
     ```
     
     
  
  3. 创建一个名为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
     ```
     
     
  
  4. 创建Pod。 
     ```
     kubectl create -f nginx.yaml
     ```
     回显如下：
     ```
     pod/nginx created
     ```
     
     
  
  5. Pod创建完成后，可以使用以下命令查询Pod的状态，该Pod将在annotation中自动获取并显示网卡信息。 
     ```
     kubectl get pod nginx -o yaml
     ```
     回显如下：
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002424129853.png "点击放大")
     其中：
     - name：Pod使用的容器网络配置名称。
     
     - portID：Pod使用的网卡ID。
     
     - ips：该网卡的IP地址。
     
     
     
     
   
- [按需配置：指定Pod显示网卡信息]
  
  1. 请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)，使用kubectl工具连接到您的集群。
  
  2. 创建一个名为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
     ```
     
     
  
  3. 创建Pod。 
     ```
     kubectl create -f nginx.yaml
     ```
     回显如下：
     ```
     pod/nginx created
     ```
     
     
  
  4. Pod创建完成后，可以使用以下命令查询Pod的状态，该Pod将在annotation中自动获取并显示网卡信息。 
     ```
     kubectl get pod nginx -o yaml
     ```
     回显如下：
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002446492325.png "点击放大")
     其中：
     - name：Pod使用的容器网络配置名称。
     
     - portID：Pod使用的网卡ID。
     
     - ips：该网卡的IP地址。
     
     
     
     
   
