【组件公告】关于nvidia-container-toolkit引起内存上涨公告

影响说明

问题原因:GPU节点上存在频繁调用容器exec操作(例如Pod配置了exec探针),每次调用容器exec操作时,nvidia container runtime会打印info级别的日志。

影响结果:导致/run/containerd/io.containerd.runtime.v2.task/k8s.io/<容器ID>/log.json文件持续增大,占用磁盘空间。

影响范围

影响版本

NVIDIA Container Toolkit < 1.16.2版本。

解决方案

  1. 查看NVIDIA Container Toolkit版本。

    可登录GPU节点执行nvidia-container-cli --version查看组件版本,以下是一个示例输出。

    cli-version: 1.17.8
    lib-version: 1.17.8
    build date: 2025-05-30T13:47+00:00
    build revision: 6eda4d76c8c5f8fc174e4abca83e513fb4dd63b0
    build compiler: x86_64-linux-gnu-gcc-7 7.5.0
    build platform: x86_64
  2. 登录节点执行如下脚本:

    1. nvidia-container-runtime日志级别调整为error

    2. 清空所有容器的log.json内容。

    #!/bin/bash
    set -e
    
    export CONFIG=/etc/nvidia-container-runtime/config.toml
    export CONTAINER_ROOT_PATH="/run/containerd/io.containerd.runtime.v2.task/k8s.io"
    
    if [ -f $CONFIG ];then
        # nvidia-container-runtime配置中的日志级别由原本的info切换为"error"
    	sed -i 's@^log-level = "info"@log-level = "error"@g' $CONFIG
        # 清空容器的log.json内容
    	find $CONTAINER_ROOT_PATH -mindepth 2 -maxdepth 2 -name log.json -type f -exec sh -c 'echo "" > "{}"' \;
    fi