文档首页/ 云容器引擎 CCE/ 常见问题/ 工作负载/ 调度策略/ 根据GPU/NPU卡信息定位使用该卡的Pod
更新时间:2024-12-26 GMT+08:00
分享

根据GPU/NPU卡信息定位使用该卡的Pod

在CCE中使用GPU/NPU卡时,无法直接获取到使用该卡的Pod。您可以根据GPU/NPU卡的信息,通过kubectl命令行操作筛选Pod,以便在GPU/NPU卡故障时能够及时将Pod驱逐。

前提条件

操作步骤

您可以在集群节点上查询GPU/NPU卡的信息,然后使用kubectl搜索到使用该卡的Pod。

  1. 登录CCE控制台,在左侧导航栏中选择“节点管理”,切换至“节点”页签,查看GPU节点的IP。本文中以192.168.0.106为例。
  2. 登录GPU节点,通过以下命令查看GPU卡的信息。

    nvidia-smi

    可以看到该机器上存在1张卡GPU0。本文以GPU0为例,定位使用这张卡的Pod。

  3. 根据节点IP(即192.168.0.106)和设备号(即第0张卡)定位使用了该卡的Pod。

    kubectl get pods --all-namespaces -o jsonpath='{range .items[?(@.spec.nodeName=="192.168.0.106")]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.metadata.annotations}{"\n"}{end}' | grep nvidia0 | awk '{print $1, $2}'

    该命令查找了192.168.0.106节点上所有的Pod,并且查找了annotation中存在nvidia0(代表第0张卡)信息的Pod。最终输出了Pod所在的命名空间和Pod名称。查询结果如下:

    代表default命名空间下名为k8-job-rhblr的Pod使用了192.168.0.106节点上的第0张卡。

  1. 登录CCE控制台,在左侧导航栏中选择“节点管理”,切换至“节点”页签,查看NPU节点的IP。本文中以192.168.0.138为例。
  2. 登录NPU节点,通过以下命令查看NPU卡的信息。

    npu-smi info

    可以看到该机器上存在两张卡device0和device1。本文以device0为例,定位使用了这张卡的Pod。

  3. 根据节点IP(即192.168.0.138)和设备号(即第0张卡)定位使用了该卡的Pod。

    kubectl get pods --all-namespaces -o jsonpath='{range .items[?(@.spec.nodeName=="192.168.0.138")]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.metadata.annotations}{"\n"}{end}' | grep Ascend310-0 | awk '{print $1, $2}'

    该命令查找了192.168.0.138节点上所有的Pod,并且查找了annotation中存在Ascend310-0(代表NPU卡的第0张卡)信息的Pod。最终输出了Pod所在的命名空间和Pod名称。查询结果如下:

    代表default命名空间下名为test-564f996c77-fws6z的Pod使用了192.168.0.138节点上的第0张卡。

    • 在使用其他卡时,Ascend310-0的Ascend310应该修改为对应卡名称。
    • NPU驱动版本应大于等于23.0。

相关文档