下载
中文
注册
kubelet重启后,NPU-Exporter无法获取当前容器信息

kubelet重启后,NPU-Exporter无法获取当前容器信息

2025/01/26

31

暂无评分
我要评分

问题信息

问题来源产品大类产品子类关键字
官方集群调度资源监测NPU Exporter、容器信息

问题现象描述

当用户重启kubelet后,发现NPU-Exporter没有上报容器的相关信息。

原因分析

kubelet重启后会重新创建新dockershim.sock文件,但是NPU-Exporter获取的是旧dockershim.sock文件,导致无法获取当前容器的数据信息。

解决措施

选择以下方式之一进行处理。

  • 方式一:无需手动处理。

    kubelet重启后,容器会自动退出,由K8s重新拉起容器后,NPU-Exporter即可正常获取容器信息。容器拉起期间(大约10s),NPU-Exporter会丢失所有数据信息。

  • 方式二:执行以下命令,在kubelet重启时,手动删除容器。
    kubectl delete pod -n npu-exporter <npu-exporter-podname>

    删除容器后,容器会被重新拉起(大约10s),NPU-Exporter会丢失期间所有数据信息。

  • 方式三:挂载dockershim.sock文件的目录。
    1. 在NPU-Exporter启动yaml所在路径,执行以下命令,打开yaml。
      vi npu-exporter-v{version}.yaml
    2. 在NPU-Exporter启动yaml中,删除以下挂载路径。
      ...
              volumeMounts:
                - name: log-npu-exporter
      ...
                - name: sys
                  mountPath: /sys
                  readOnly: true
                - name: docker-shim                        # 删除以下加粗字段                                          
                  mountPath: /var/run/dockershim.sock
                  readOnly: true
                - name: docker 
                  mountPath: /var/run/docker
                  readOnly: true
                - name: cri-dockerd 
                  mountPath: /var/run/cri-dockerd.sock
                  readOnly: true
                - name: containerd  # delete when only use isula
                  mountPath: /run/containerd
      ...
            volumes:
              - name: log-npu-exporter
      ...
              - name: sys
                hostPath:
                  path: /sys
              - name: docker-shim                    # 删除以下加粗字段
                hostPath:   
                  path: /var/run/dockershim.sock
              - name: docker 
                hostPath:
                  path: /var/run/docker
              - name: cri-dockerd 
                hostPath:
                  path: /var/run/cri-dockerd.sock
              - name: containerd  
                hostPath:
                  path: /run/containerd
       ...
    3. 在NPU-Exporter启动yaml,新增dockershim.sock文件的挂载目录。
      ...
              volumeMounts:
                - name: log-npu-exporter
      ...
                - name: sys
                  mountPath: /sys
                  readOnly: true
                - name: sock 
                  mountPath: /var/run        # 以实际的dockershim.sock文件目录为准
      ...
            volumes:
              - name: log-npu-exporter
      ...
              - name: sys
                hostPath:
                  path: /sys
              - name: sock
                hostPath:
                  path: /var/run                    # 以实际的dockershim.sock文件目录为准
              - name: containerd  
                hostPath:
                  path: /run/containerd
      ...

本页内容