stanislavvv: (Default)
[personal profile] stanislavvv
На работе требуется нынче а) запускать нейросети в контейнере, б) чтоб ещё и в k8s, а не просто докер.
K8s таки есть (сам же и поднимал), осталось дело за запуском там видеокарты.
Нюансы:

1) весь k8s в виртуалках, за исключением сервера с нвидией и сеть k8s — на eth1. Ок, сделал там vxlan eth1 вместо того, что было.

2) если поставить nvidia-container-toolkit _полностью_ в соответствии с документацией, т.е. когда он рантайм по-умолчанию в containerd, через какое-то время служебные контейнеры начинают немножечко не отрабатывать пробы и перезапускаются, включая сетевой плагин. Это приводит к тому, что остальные контейнеры, у которых есть сеть, также перезапускаются. И всё это происходит примерно каждые 3-4 минуты.
Решение:
а) вернуть runc как рантайм по-умолчанию в конфиге containerd,
б) сделать RuntimeClass для запуска контейнеров, которым требуется GPU
Для п.б пришлось ещё сделать в конфиге containerd дубликат runc с именем nvidia, так как помимо всего прочего потребовалось ещё и nvidia device plugin с этим классом запускать. Он DaemonSet, так что запускается вообще везде.

3) так как количество GPU на сервере оказалось ограниченным :-), то сделал timeslicing, при помощи configmap для nvidia-device-plugin (подсмотрел чуть-чуть в темплейте helm, как прописать его использование, остальное — в документации описано достаточно понятно).

Итого для запуска требуется:
- вписать правильный tolerations (на тот сервер обычные контейнеры не допускаются)
- рядом добавить runtimeClassName: nvidia

P.S. Рад, щаслив, горд ©
P.P.S тег "колхоз", ибо назвать по-другому то, что сделано — сложновато.

Profile

stanislavvv: (Default)
stanislavvv

September 2025

S M T W T F S
 123456
78 910111213
14151617181920
21222324252627
282930    

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 7th, 2026 12:54 pm
Powered by Dreamwidth Studios