ステータス:解決済み(2026-10-13〜14)、記録時点。 更新時刻とパッケージリストは2026-10-16にノードの
unattended-upgrades.logを 読んで 確認し、その日のエラーメッセージは作業メモから引用しています。ポッドのエラーがなぜあのような内容だったのかは 推測です。ドライバーの正確な バージョン番号はノードに紐づくため記載しません。
目次
- 一行まとめ
- 1. 症状:原因を指し示さないエラー
- 2. 原因:3日前深夜の自動更新
- 3. 確認方法
- 4. 修正内容:再起動、そしてそれは人間の役割
- 5. 再発防止:自動更新からドライバーを除外する
- 6. 残された課題と制限
- 参考
一行まとめ
| 影響 | 1台のGPUノードでGPUを要求したポッドの起動が失敗。そのノードのGPU検証が3日間静かにブロックされていた |
| 原因 | unattended-upgradesがNVIDIAドライバーパッケージをアップデートしたが、ロード済みカーネルモジュールは再起動まで旧バージョンのまま → ユーザーライブラリとバージョン不整合が発生 |
| 修正内容 | ノードの再起動(新モジュールのロード)。人間が実施 — 同ノードの他のサービスが一時的に切断されるため |
| 再発防止 | GPUノードの自動更新からNVIDIAパッケージを除外した(Package-Blacklist)。ドライバーは計画的にアップデートする |
1. 症状:原因を指し示さないエラー
GPUを要求したポッドがコンテナを作成できず、イベントのエラーは次のように終わっていました。
… open /run/nvidia-persistenced/socket: no such file or directory
ポッドのエラーだけを見ると、GPU Operatorやコンテナツールキット、あるいはpersistencedデーモンの設定を真っ先に疑うことになります。実際にそのノードの
nvidia-persistenced は起動していませんでした。しかしそれは結果に過ぎません。ノードに直接問い合わせて初めて本当の答えが出ました。
$ nvidia-smi
Failed to initialize NVML: Driver/library version mismatch
ポッドのエラーがなぜよりによってソケットの話だったのかは確認できていません。 推測はこうです。バージョン不整合によりNVMLが初期化されないためpersistencedが起動できずソケットも生成されないが、コンテナにGPUをアタッチする側はそのソケットが存在するものとしてオープンしようとして失敗したというものです。
教訓は明確です。「 GPUポッドがおかしいときは、まずノードで nvidia-smi を実行する。」
2. 原因:3日前深夜の自動更新
ノードの unattended-upgrades.log に答えがありました。2026-10-10 06:08、自動更新が適用するパッケージのリストにNVIDIA関連パッケージが15個含まれていました — ユーザーライブラリ(libnvidia-*)、ユーティリティ、ドライバーメタパッケージ、そしてカーネルモジュールソースとdkmsパッケージです。
ここでバージョンが2つに分かれます。
- ディスク:新しいライブラリがインストールされ、dkmsが新しいカーネルモジュールをビルドしてディスクに配置します。
- メモリ:すでにロードされているカーネルモジュールはそのままです。Linuxは稼働中のモジュールをパッケージインストールで勝手に置き換えたりはしません。そのノードは19日間稼働し続けていました。
ところが nvidia-smi やGPUを使用するプロセスは起動するたびに ディスク上の新しいライブラリをオープンします。新しいライブラリが古いモジュールに出会うため、バージョンが一致しないとして拒否されます。
なぜ再起動が伴わなかったのでしょうか。unattended-upgrades の Automatic-Reboot は デフォルトでオフです(公式README基準)。そのノードの設定もコメントアウトされたデフォルト値のままでした。更新は自動、再起動は手動 — このデフォルト値の組み合わせが「中途半端にアップデートされた」状態を作り出します。
そして3日間、誰も気づきませんでした。その間、そのノードで新しくGPUを取得したポッドがなかったためです。すでにGPUを保持して稼働していたプロセスは以前にオープンしたライブラリを使い続けるため問題なく動いているように見えます(推測 — その3日間にGPUを保持していたプロセスが存在したかは未確認)。
3. 確認方法
# 적재된 모듈의 판
cat /proc/driver/nvidia/version
# 디스크에 깔린 패키지의 판
dpkg -l | grep -E 'nvidia-(driver|utils)-'
# 언제 누가 올렸나
grep -i nvidia /var/log/unattended-upgrades/unattended-upgrades.log
# 노드가 언제부터 켜져 있었나
uptime -s
1つ目と2つ目のバージョンが異なり、3つ目に更新履歴があり、4つ目がそれより前であればこの障害です。
4. 修正内容:再起動、そしてそれは人間の役割
新しいモジュールをロードする最も確実な方法は再起動です。モジュールをアンロードして再度ロードする方法もありますが、GPUを保持しているプロセスが1つでもあるとアンロードできません。
この再起動は人間が実行しました。そのノードにはGPUポッドだけでなく、他の複数の本番サービスや検証用VMが同居していました。再起動するとこれらが一時的に切断されるか、他のノードに移行します。 そのタイミングと影響は人間が判断すべき事項です。エージェントは原因、コマンド、影響リストを整理して引き渡しました。
2026-10-13にそのノードを、2026-10-14に同じ自動更新を受け取っていたもう1台のGPUノードを再起動し、2台のノードのモジュールとライブラリのバージョンを一致させました。
5. 再発防止:自動更新からドライバーを除外する
両方のノードに次のように設定を追加しました(2026-10-16にファイルを読んで確認)。
// /etc/apt/apt.conf.d/51-no-nvidia-autoupgrade
Unattended-Upgrade::Package-Blacklist {
"nvidia-";
"libnvidia-";
"xserver-xorg-video-nvidia";
};
Package-Blacklist の項目は 正規表現です。リストにヒットするパッケージはアップデートされず、ヒットするパッケージに依存するパッケージも一緒にアップデートされません(公式README基準)。同じことを apt-mark hold で行っても構いません。holdは手動 apt upgrade までブロックするという点が異なります。
代償も記載しておきます。今後、ドライバーの セキュリティアップデートも自動では届きません。 そのため、ドライバーは計画的にアップデートします。
- ノードを空にする(
kubectl drain). - ドライバーパッケージをアップデートする。
- 再起動する。
nvidia-smiとGPUポッド1つで確認してノードを戻す(kubectl uncordon).
NVIDIA GPU Operatorのドキュメントのプラットフォームサポート表には、「サポートされていないカーネルにアップグレードされないようにunattended-upgradesのカーネル自動更新をオフにせよ」という推奨事項がすでに記載されています。あらかじめインストールしておいたドライバー(driver.enabled=false)を使用する場合 ドライバーパッケージも同様の問題に見舞われるという内容がなかったため、トラブルシューティングドキュメントにこの事例を追加するPRを送信しました —
NVIDIA/cloud-native-docs#524(2026-10-16時点オープン)。
6. 残された課題と制限
- 別のドライバー系統を使用しているGPUノードがもう1台あります。そのノードの自動更新設定は確認していません(未確認)。同様のリスクがあると見なし、同じ設定を追加することが次の作業です。
- ノードごとに手動で追加した設定であるため、ノードを新規構築した際に漏れる可能性があります。ノードプロビジョニング手順に組み込む必要があります。
- 「バージョンが不整合を起こしている」ことを事前に通知するアラートはまだありません。現在はGPUポッドが失敗して初めて気づく仕組みになっています。
一言メモ。 自動更新は半分だけ自動です。ファイルは置き換えてくれますが、メモリは再起動しないと変わりませんからね。そしてポッドが「見当違いのファイルがない」と言ってきたら、そのファイルを探す前にノードで
nvidia-smiを1回!本当の原因は大抵そこにあります。
参考
すべての資料は2026-10-16に閲覧しました。
- unattended-upgrades README(Package-Blacklist、Automatic-Rebootのデフォルト値): https://github.com/mvo5/unattended-upgrades/blob/master/README.md
- NVIDIA GPU Operator プラットフォームサポート(カーネル自動更新の推奨): https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/platform-support.html
- 今回送信したドキュメントPR: https://github.com/NVIDIA/cloud-native-docs/pull/524