Containerd не удалось запустить после Nvidia Config
Я следую этому официальному руководству , чтобы предоставить голому кластеру k8s доступ к графическому процессору. Однако при этом я получил ошибки.
Kubernetes 1.21Containerd 1.4.11 и Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-91-generic x86_64).
Драйвер Nvidia предустановлен в системной ОС версии 495 Headless.
После вставки следующей конфигурации внутрь/etc/containerd/config.toml
и выполнить перезапуск службы, контейнер не сможет запуститься сexit 1
.
Контейнер Конфиг.toml
системный журнал здесь .
# persistent data location
root = "/var/lib/containerd"
# runtime state information
state = "/run/containerd"
# Kubernetes doesn't use containerd restart manager.
disabled_plugins = ["restart"]
# NVIDIA CONFIG START HERE
version = 2
[plugins]
[plugins."io.containerd.grpc.v1.cri"]
[plugins."io.containerd.grpc.v1.cri".containerd]
default_runtime_name = "nvidia"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia]
privileged_without_host_devices = false
runtime_engine = ""
runtime_root = ""
runtime_type = "io.containerd.runc.v2"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options]
BinaryName = "/usr/bin/nvidia-container-runtime"
# NVIDIA CONFIG ENDS HERE
[debug]
level = ""
[grpc]
max_recv_message_size = 16777216
max_send_message_size = 16777216
[plugins.linux]
shim = "/usr/bin/containerd-shim"
runtime = "/usr/bin/runc"
Я могу подтвердить, что драйвер Nvidia обнаруживает графический процессор (Nvidia GTX 750Ti), запустивnvidia-smi
и получил следующий вывод
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 495.44 Driver Version: 495.44 CUDA Version: 11.5 |
|-------------------------------+----------------------+----------------------+
| 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 NVIDIA GeForce ... Off | 00000000:02:00.0 Off | N/A |
| 34% 34C P8 1W / 38W | 0MiB / 2000MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
измененный config.toml , благодаря которому он заработал.
1 ответ
Насколько я могу судить, это следующее:
2 декабря 03:15:36 k8s-node0Containerd [2179737]:Containerd: недопустимый отключенный URI плагина «перезапуск», ожидайте io.containerd.x.vx
2 декабря 03:15:36 k8s-node0 systemd[1]:Containerd.service: основной процесс завершен, код = выход, статус = 1/ОШИБКА
Итак, если вы знаете , чтоrestart
-ish плагин на самом деле включен, вам нужно будет отследить его новый синтаксис URI, но я бы рекомендовал просто закомментировать этот раздел или использоватьdisabled_plugins = []
, поскольку используемая нами роль контейнера ничего не упоминает о «перезагрузке» и имеет= []
вкус
Кстати, вы можете захотеть ограничитьjournalctl
вызов в будущем, чтобы просто посмотреть наcontainerd.service
, так как будет выдано много отвлекающего текста:journalctl -u containerd.service
и вы даже можете ограничить его только несколькими последними строками, что иногда может помочь:journalctl -u containerd.service --lines=250