このトピックでは、パフォーマンスの最適化、ドライバーのインストール、トラブルシューティングなど、GPU に関するよくある質問に回答します。
問題の分類 | 説明 | リンク |
GPU エラーとトラブルシューティング | このセクションでは、GPU ドライバー、DCGM や Prometheus などの監視ツール、および NVML の初期化の失敗や XID エラーなどの実行時エラーに関連する問題について説明します。 | |
cGPU (コンテナー化 GPU) の問題 | このセクションでは、cGPU の構成、起動、実行時エラー、およびカーネルモジュールに関連する権限の問題について説明します。 | |
GPU ノードとクラスター管理 | このセクションでは、GPU カードの使用状況の検出、仮想化のサポート、カーネルのアップグレードなどのノードのメンテナンス、障害のあるカードの隔離など、クラスターレベルの操作について説明します。 |
クラスター内の GPU ECC 構成に一貫性がないのはなぜですか?
エラー訂正コード (ECC) モードは、GPU メモリのエラーを検出して修正することにより、GPU の安定性と信頼性を向上させます。ただし、このモードを有効にすると、使用可能な GPU メモリがわずかに減少します。
ECC モードの推奨事項:
ECC の無効化: オンラインのリアルタイム推論など、コスト重視のシナリオや低レイテンシーの推論に適しています。
ECC の有効化: データベースサーバー、金融システム、科学計算、ハイパフォーマンスコンピューティング (HPC) など、高いデータ整合性と完全性を必要とするアプリケーションに適しています。
これらの理由により、ECC モードは一様に初期化されません。これにより、クラスター内の GPU ノード間で ECC 構成に一貫性がなくなる可能性があります。
GPU ノードの ECC モードを設定する方法
次のコマンドを実行して、現在の ECC モードのステータスを確認できます。
nvidia-smi期待される出力:
Fri Jun 6 11:49:05 2025 +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.161.07 Driver Version: 535.161.07 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 Tesla T4 On | 00000000:00:08.0 Off | 0 | | N/A 31C P8 9W / 70W | 0MiB / 15360MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | No running processes found | +---------------------------------------------------------------------------------------+出力の Volatile Uncorr. ECC 列にステータスが表示されます。値が
0の場合は、ECC が有効になっており、エラーが発生していないことを示します。値がOffの場合は、ECC が無効になっていることを示します。必要に応じて、次のいずれかのコマンドを実行して ECC モードを有効または無効にできます。
ノード上のすべての GPU の ECC モードを有効にします。
nvidia-smi -e 1ノード上のすべての GPU の ECC モードを無効にします。
nvidia-smi -e 0
ECC モードを変更した後、変更を有効にするにはオペレーティングシステムを再起動する必要があります。
重要ノードを再起動する前に、必要なすべてのデータを保存してください。
再起動後、
nvidia-smiを再度実行して ECC モードのステータスを確認し、有効または無効になっていることを確認できます。次の出力は、ECC モードが無効になっていることを示しています。Fri Jun 6 11:52:15 2025 +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.161.07 Driver Version: 535.161.07 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 Tesla T4 On | 00000000:00:08.0 Off | Off | | N/A 31C P8 9W / 70W | 0MiB / 16384MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | No running processes found | +---------------------------------------------------------------------------------------+
Container Service for Kubernetes は GPU 仮想化インスタンスをサポートしていますか?
GPU 仮想化インスタンスが正しく機能するには、NVIDIA の GRID ライセンスが必要です。GPU 仮想化インスタンスを使用するには、NVIDIA から GRID ライセンスを購入し、独自のライセンスサーバーを構築する必要があります。
Alibaba Cloud はライセンスサーバーを提供していないため、GPU 仮想化インスタンスは、GPU 仮想化クラスター内であっても直接使用することはできません。したがって、Container Service for Kubernetes コンソールでは、クラスターノードとして GPU 仮想化インスタンスを選択することができなくなりました。
サポートされていない GPU 仮想化インスタンスには、ecs.vgn5i、ecs.vgn6i、ecs.vgn7i、ecs.sgn7i などのプレフィックスを持つ ECS インスタンスが含まれます。これらのインスタンスを使用するには、NVIDIA から GRID ライセンスを購入し、独自のライセンスサーバーを構築する必要があります。
ACK クラスター内の GPU 仮想化インスタンスの NVIDIA ドライバーライセンスを更新するには、ライセンスサーバーが必要です。
ECS インスタンスを購入し、NVIDIA の公式チュートリアルに従ってライセンスサーバーを構築できます。詳細については、「NVIDIA」をご参照ください。
ライセンスサーバーをすでにセットアップしている場合は、次の手順に従って GPU 仮想化インスタンスを ACK クラスターに追加できます。
GPU 仮想化インスタンスを ACK クラスターに追加する
権限クォータ に移動し、カスタム OS イメージ機能をリクエストします。
CentOS 7.x または Alibaba Cloud Linux 2 に基づいてカスタム OS イメージを作成します。イメージには NVIDIA GRID ドライバーがインストールされ、GRID ライセンスが正しく構成されている必要があります。詳細については、「インスタンスからカスタムイメージを作成する」および「vGPU 対応インスタンス (Linux) に GRID ドライバーをインストールする」をご参照ください。
ノードプールを作成します。詳細については、「ノードプールを作成および管理する」をご参照ください。
ステップ 3 で作成したノードプールに GPU 仮想化インスタンスを追加します。詳細については、「既存のノードを追加する」をご参照ください。
次のステップ: ACK クラスター内の GPU 仮想化インスタンスの NVIDIA ドライバーライセンスを更新する
ACK クラスター内の GPU 仮想化インスタンスの NVIDIA ドライバーライセンスを更新する方法については、「ACK クラスター内の GPU 仮想化 (vGPU) インスタンスの NVIDIA ドライバーライセンスを更新する」をご参照ください。
既存のクラスターの GPU ノードでカーネルを手動でアップグレードする方法
このセクションでは、既存のクラスターの GPU ノードでカーネルを手動でアップグレードする方法について説明します。
カーネルのバージョンが
3.10.0-957.21.3より古い場合は、カーネルをアップグレードしてください。ターゲットのカーネルバージョンを確認し、注意して進めてください。
このソリューションは、カーネルのアップグレード自体については説明していません。カーネルをアップグレードした後に NVIDIA ドライバーをアップグレードする方法のみを説明しています。
GPU ノードをスケジュール不可に設定します。この例では、ノード cn-beijing.i-2ze19qyi8votgjz12345 を使用します。
kubectl cordon cn-beijing.i-2ze19qyi8votgjz12345 node/cn-beijing.i-2ze19qyi8votgjz12345 already cordonedドライバーをアップグレードする GPU ノードをドレインします。
kubectl drain cn-beijing.i-2ze19qyi8votgjz12345 --grace-period=120 --ignore-daemonsets=true node/cn-beijing.i-2ze19qyi8votgjz12345 cordoned WARNING: Ignoring DaemonSet-managed pods: flexvolume-9scb4, kube-flannel-ds-r2qmh, kube-proxy-worker-l62sf, logtail-ds-f9vbg pod/nginx-ingress-controller-78d847fb96-5fkkw evicted現在の NVIDIA ドライバーをアンインストールします。
説明このステップでは、ドライバーバージョン 384.111 をアンインストールします。ドライバーのバージョンが異なる場合は、NVIDIA の Web サイトから対応するドライバーインストールパッケージをダウンロードし、それに応じてバージョン番号を置き換えてください。
GPU ノードにログインし、
nvidia-smiを実行してドライバーのバージョンを確認します。sudo nvidia-smi -a | grep 'Driver Version' Driver Version : 384.111NVIDIA ドライバーインストールパッケージをダウンロードします。
sudo cd /tmp/ sudo curl -O https://cn.download.nvidia.cn/tesla/384.111/NVIDIA-Linux-x86_64-384.111.run説明NVIDIA ドライバーをアンインストールするには、インストールパッケージを使用する必要があります。
現在の NVIDIA ドライバーをアンインストールします。
sudo chmod u+x NVIDIA-Linux-x86_64-384.111.run sudo sh ./NVIDIA-Linux-x86_64-384.111.run --uninstall -a -s -q
カーネルをアップグレードします。
GPU インスタンスを再起動します。
sudo rebootGPU ノードに再度ログインし、対応する kernel-devel パッケージをインストールします。
sudo yum install -y kernel-devel-$(uname -r)NVIDIA の Web サイトにアクセスして、必要な NVIDIA ドライバーをダウンロードしてインストールします。この例では、バージョン 410.79 を使用します。
sudo cd /tmp/ sudo curl -O https://cn.download.nvidia.cn/tesla/410.79/NVIDIA-Linux-x86_64-410.79.run sudo chmod u+x NVIDIA-Linux-x86_64-410.79.run sudo sh ./NVIDIA-Linux-x86_64-410.79.run -a -s -q # warm up GPU sudo nvidia-smi -pm 1 || true sudo nvidia-smi -acp 0 || true sudo nvidia-smi --auto-boost-default=0 || true sudo nvidia-smi --auto-boost-permission=0 || true sudo nvidia-modprobe -u -c=0 -m || true/etc/rc.d/rc.local ファイルをチェックして、次の構成が含まれていることを確認します。含まれていない場合は、手動で追加します。
sudo nvidia-smi -pm 1 || true sudo nvidia-smi -acp 0 || true sudo nvidia-smi --auto-boost-default=0 || true sudo nvidia-smi --auto-boost-permission=0 || true sudo nvidia-modprobe -u -c=0 -m || truekubelet と Docker を再起動します。
sudo service kubelet stop sudo service docker restart sudo service kubelet startGPU ノードを再度スケジュール可能に設定します。
kubectl uncordon cn-beijing.i-2ze19qyi8votgjz12345 node/cn-beijing.i-2ze19qyi8votgjz12345 already uncordonedGPU ノードのデバイスプラグイン Pod でドライバーのバージョンを確認します。
kubectl exec -n kube-system -t nvidia-device-plugin-cn-beijing.i-2ze19qyi8votgjz12345 nvidia-smi Thu Jan 17 00:33:27 2019 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 410.79 Driver Version: 410.79 CUDA Version: N/A | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla P100-PCIE... On | 00000000:00:09.0 Off | 0 | | N/A 27C P0 28W / 250W | 0MiB / 16280MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+説明docker psコマンドを実行して、GPU ノードでコンテナーが起動していないことがわかった場合は、「GPU ノードでのコンテナー起動の問題を修正する」をご参照ください。
GPU ノードでのコンテナー起動の問題を修正する
特定の Kubernetes バージョンの GPU ノードでは、kubelet と Docker を再起動した後にコンテナーが起動しない場合があります。
sudo service kubelet stop
Redirecting to /bin/systemctl stop kubelet.service
sudo service docker stop
Redirecting to /bin/systemctl stop docker.service
sudo service docker start
Redirecting to /bin/systemctl start docker.service
sudo service kubelet start
Redirecting to /bin/systemctl start kubelet.service
sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES次のコマンドを実行して、Docker の Cgroup ドライバーを確認します。
sudo docker info | grep -i cgroup
Cgroup Driver: cgroupfs出力は、Cgroup ドライバーが `cgroupfs` であることを示しています。
この問題を解決するには、次の手順に従います。
/etc/docker/daemon.json ファイルをバックアップします。次に、次のコマンドを実行して /etc/docker/daemon.json を更新します。
sudo cat >/etc/docker/daemon.json <<-EOF { "default-runtime": "nvidia", "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } }, "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "10" }, "oom-score-adjust": -1000, "storage-driver": "overlay2", "storage-opts": ["overlay2.override_kernel_check=true"], "live-restore": true } EOFDocker と kubelet を再起動します。
sudo service kubelet stop Redirecting to /bin/systemctl stop kubelet.service sudo service docker restart Redirecting to /bin/systemctl restart docker.service sudo service kubelet start Redirecting to /bin/systemctl start kubelet.serviceDocker の Cgroup ドライバーが systemd であることを確認します。
sudo docker info | grep -i cgroup Cgroup Driver: systemd
ECS ベアメタルインスタンスノードの追加に失敗した場合はどうすればよいですか?
ECS ベアメタルインスタンス (ecs.ebmgn7) は、マルチインスタンス GPU (MIG) をサポートしています。既存の MIG 設定がノードのデプロイメントに影響を与えないようにするため、このタイプのノードがクラスターに追加されるたびに、システムは既存の MIG 設定をリセットします。このリセット時間は可変です。リセットに時間がかかりすぎると、ノードを追加するスクリプトがタイムアウトし、操作が失敗する可能性があります。
このインスタンスファミリーのノードの追加に失敗した場合は、ノードのホストで次のコマンドを実行できます。
sudo cat /var/log/ack-deploy.log出力に次のエラーが含まれているかどうかを確認します。
command timeout: timeout 300 nvidia-smi --gpu-resetこのエラーが存在する場合、失敗は MIG のリセットが原因です。ノードを再度追加できます。詳細については、「既存のノードを追加する」をご参照ください。
Alibaba Cloud Linux 3 で GPU コンテナーを実行したときに「Failed to initialize NVML: Unknown Error」が発生した場合はどうすればよいですか?
症状
GPU コンテナーで nvidia-smi を実行すると、次のエラーが報告されます。
sudo nvidia-smi
Failed to initialize NVML: Unknown Error原因
Alibaba Cloud Linux 3 で systemd を使用すると、systemctl daemon-reload や systemctl daemon-reexec などの操作によって cgroup 関連の構成が更新されます。これにより、コンテナー内の NVIDIA GPU デバイスの正常な動作が妨げられる可能性があります。詳細については、コミュニティの問題 1671 および 48 をご参照ください。
ソリューション
この問題が発生した場合は、次の解決策を試すことができます。
ケース 1: アプリケーション Pod がコンテナーの NVIDIA_VISIBLE_DEVICES=all 環境変数を設定して GPU リソースをリクエストする場合、コンテナーに特権を追加できるかどうかを評価します。次の例は、特権を追加する方法を示しています。
apiVersion: v1 kind: Pod metadata: name: test-gpu-pod spec: containers: - name: test-gpu-pod image: centos:7 command: - sh - -c - sleep 1d securityContext: # コンテナーに特権を追加します。 privileged: trueケース 2: 共有 GPU スケジューリングを使用するアプリケーションには、Alibaba Cloud Linux 2 または CentOS 7 を使用することをお勧めします。
ケース 3: アプリケーション Pod を再作成します。この操作を実行する前に、ビジネスへの潜在的な影響を評価してください。この解決策は、問題が再発しないことを保証するものではありません。
ケース 4: 上記の解決策のいずれも適用できない場合は、ビジネスで Alibaba Cloud Linux 2 や CentOS 7 などの別のオペレーティングシステムを使用できるかどうかを評価してください。
XID 119 または XID 120 エラーが原因で GPU カードが使用できなくなった場合はどうすればよいですか?
症状
GPU を使用していると、カードが使用できなくなることがあります。たとえば、Linux システムで GPU を使用している場合、GPU カードの初期化に失敗したことを示すエラーメッセージが表示されることがあります。sh nvidia-bug-report.sh コマンドを実行した後、生成されたログに XID 119 または XID 120 エラーメッセージが表示されることがあります。次の画像は、XID 119 エラーの例です。

他の XID エラーについては、「NVIDIA Common XID Errors」をご参照ください。
原因
上記の問題は、GSP コンポーネントで例外が発生したために発生する可能性があります。NVIDIA ドライバーを最新バージョンに更新できます。更新後も問題が解決しない場合は、GSP コンポーネントを無効にすることをお勧めします。
GSP の詳細については、NVIDIA の公式ドキュメントの「Chapter 42. GSP Firmware」をご参照ください。
ソリューション
次のセクションでは、さまざまなシナリオで GSP を無効にする方法について説明します。
新しいノードのスケールアウト
新しいノードプールを作成するか、既存のノードプールの構成を編集できます。詳細設定で、タグ ack.aliyun.com/disable-nvidia-gsp=true をノードプールに追加します。新しいノードをスケールアウトすると、ACK はそれらのノードで GSP を無効にするために必要な構成を自動的に適用します。
操作エントリポイントとノードプールの設定項目については、「ノードプールを作成および管理する」をご参照ください。

GSP を無効にする手順により、ノードのスケールアウトのレイテンシーが増加する可能性があります。
既存のノードの追加
新しいノードプールを作成するか、ノードを追加するノードプールの構成を編集できます。詳細設定で、タグ
ack.aliyun.com/disable-nvidia-gsp=trueをノードプールに追加します。既存のノードをノードプールに追加すると、ACK はそれらのノードで GSP を無効にするために必要な構成を自動的に適用します。操作エントリポイントとノードプールの設定項目については、「ノードプールを作成および管理する」をご参照ください。
説明GSP を無効にする手順により、クラスターにノードを追加する際のレイテンシーが増加する可能性があります。
既存のノードをノードプールに追加します。操作エントリポイントと関連する注意事項については、「既存のノードを追加する」をご参照ください。
クラスター内の既存ノードの管理
次の方法で、既存のノードで GSP を無効にできます。
ノードプールタグを使用した GSP の無効化
タグ
ack.aliyun.com/disable-nvidia-gsp=trueをノードのノードプールに追加します。操作エントリポイントとノードプールの設定項目については、「ノードプールを編集する」をご参照ください。

クラスターからノードを削除しますが、ECS インスタンスは解放しないでください。詳細については、「ノードを削除する」をご参照ください。
削除したノードを既存のノードとしてクラスターに再追加します。操作エントリポイントと関連する注意事項については、「既存のノードを追加する」をご参照ください。
ノードにログインして GSP を手動で無効にする
ノードを削除してからクラスターに再追加しても GSP を無効にできない場合は、ノードにログインして GSP を無効にする手順を手動で実行できます。詳細については、「よくある質問」をご参照ください。
NVIDIA はドライバーバージョン 510 で GSP を導入しました。たとえば、ノードにログインしてドライバーをバージョン 470 から 525 に手動でアップグレードする場合、バージョン 470 の GSP を無効にする必要はありません。ただし、バージョン 525 にアップグレードした後に GSP のバグがトリガーされる可能性があります。ドライバーのアップグレードが完了したら、「よくある質問」を参照して、GSP を無効にする手順を手動で実行してください。
クラスター内の障害のある GPU を手動で分離する方法
GPU 共有スケジューリングを使用すると、クラスター内の障害のある GPU が原因でジョブが失敗することがあります。ジョブが再起動した場合、同じ障害のある GPU にスケジュールされて再び失敗する可能性があります。繰り返しの失敗を防ぐために、障害のある GPU を手動でマークすることができます。スケジューラはマークされた GPU を使用しなくなり、障害分離が提供されます。
スケジューラとクラスターのバージョンは、次の要件を満たす必要があります。
Kubernetes 1.24 以降を実行するクラスターの場合、スケジューラのバージョンは 1.xx.x-aliyun-6.4.3.xxx 以降である必要があります。
Kubernetes 1.22 を実行するクラスターの場合、スケジューラのバージョンは 1.22.15-aliyun-6.2.4.xxx 以降である必要があります。
クラスターは GPU 共有スケジューリングを使用する必要があります。
障害のある GPU をマークするには、次の例に示すように、特別な ConfigMap をクラスターに送信します。
apiVersion: v1
kind: ConfigMap
metadata:
name: <node-name>-device-status # <node-name> を実際のノード名に置き換えます。
namespace: kube-system
data:
devices: |
- deviceId: 0 # nvidia-smi を実行して GPU の序数を取得します。
deviceType: gpu
healthy: falseConfigMap は kube-system 名前空間にある必要があります。ConfigMap の名前は、障害のある GPU をホストするノードの名前に -device-status サフィックスを付けたものである必要があります。data フィールドでは、deviceId は nvidia-smi コマンドから取得される GPU の序数、deviceType は gpu、healthy は false です。構成を送信すると、スケジューラは対応する GPU を分離します。
GPU コンテナーでの "Failed to initialize NVML: Unknown Error" メッセージを解決する
現象
GPU コンテナーで nvidia-smi を実行すると、次のエラーが表示されることがあります。この問題は、Ubuntu 22.04 または Red Hat Enterprise Linux (RHEL) 9.3 64 ビットを実行するノードで発生します。
sudo nvidia-smi
Failed to initialize NVML: Unknown Error原因
ノードで systemctl daemon-reload や systemctl daemon-reexec などの操作を実行すると、cgroup の構成が更新されます。この変更は、コンテナー内の NVIDIA GPU デバイスの正常な操作に影響を与える可能性があります。
この問題は、次の方法で GPU リソースをリクエストする Pod に影響します。
Pod が
resources.limitsでaliyun.com/gpu-memリソースを指定します。Pod が、コンテナーがノード上の GPU リソースにアクセスするために
NVIDIA_VISIBLE_DEVICES環境変数を設定します。Pod が、デフォルトで
NVIDIA_VISIBLE_DEVICES環境変数が設定されているコンテナイメージを使用し、Pod がノード上の GPU リソースにアクセスする必要がある場合。
resources.limitsでnvidia.com/gpuリソースを指定して GPU リソースをリクエストする Pod は影響を受けません。NVIDIA Device Plugin および ack-gpu-exporter コンポーネントは、デフォルトで Pod に
NVIDIA_VISIBLE_DEVICES=all環境変数を設定します。
解決策
アプリケーション Pod を再作成することで、この問題を一時的に修正できます。この操作を実行する前に、サービスへの潜在的な影響を評価してください。問題が再発した場合は、Pod を再度再作成する必要があります。
アプリケーション Pod が
NVIDIA_VISIBLE_DEVICES=all環境変数を設定して GPU リソースをリクエストする場合、アプリケーションコンテナーにprivileged権限を追加します。次の例は構成を示しています。重要privileged権限を使用すると、セキュリティリスクが生じます。代替策として、アプリケーション Pod を再作成できます。Pod の再作成は一時的な修正であり、問題の再発を防ぐものではありません。apiVersion: v1 kind: Pod metadata: name: test-gpu-pod spec: containers: - name: test-gpu-pod image: centos:7 command: - sh - -c - sleep 1d securityContext: # コンテナーに privileged 権限を追加します。 privileged: true
GPU ノード上で /run/containerd/io.containerd.runtime.v2.task/k8s.io/<container ID>/log.json ファイルが継続的に増大するのを防ぐ方法
現象
GPU ノード上の /run/containerd/io.containerd.runtime.v2.task/k8s.io/<container ID>/log.json ファイルが継続的に増大します。
分析
前提条件: ノード上の nvidia-container-toolkit のバージョンが 1.16.2 より前です。
原因: この問題は、GPU ノード上のコンテナーへの頻繁な `exec` 呼び出しによって引き起こされます。たとえば、Pod が `exec` プローブで構成されている場合などです。`exec` 操作が呼び出されるたびに、NVIDIA コンテナーランタイムは情報ログを出力します。
結果: /run/containerd/io.containerd.runtime.v2.task/k8s.io/<container ID>/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