Применение правила группы управления к определенным (или всем) контейнерам Docker в кластере Kubernetes - PullRequest
0 голосов
/ 24 июня 2019

По умолчанию контейнеры Docker непривилегированы.Конечно, устройства могут быть добавлены индивидуально с помощью docker run --device /dev/abc0, но это еще нельзя сделать в Kubernetes.

В любом случае у меня есть произвольное количество устройств на узел, что облегчает сопоставление /dev ивключить правило группы: docker run -v /dev:/dev --device-cgroup-rule='c 123:* rmw'.Как я могу передать это --device-cgroup-rule определенным или всем контейнерам Docker, контролируемым Kubernetes?Может ли помочь RuntimeClass?Конфигурация cgroup системного уровня?

1 Ответ

0 голосов
/ 16 июля 2019

Если я вас правильно понимаю, вам следует сосредоточиться на Kublet, его поддержке нескольких сред выполнения контейнеров и его интеграции с Docker.

Согласно этой документации , существует множество вариантов на выбор, например:

--cgroup-driver string

Драйвер, который kubelet использует для управления cgroups на хосте.


--cgroup-root string

Необязательная корневая группа для использования в модулях. Это обрабатывается контейнером время выполнения на основе максимальных усилий. По умолчанию: '', что означает использование контейнер по умолчанию.


--enforce-node-allocatable stringSlice

Список разделенных запятыми уровней уровней, которые можно назначить узлу навязывается кубелет. Допустимые варианты: «pods», «system-reserved» & 'kube-reserved'. Если указаны последние два варианта, '--system-reserved-cgroup' & '--kube-reserved-cgroup' также должны быть установлены соответственно. Увидеть /docs/tasks/administer-cluster/reserve-compute-resources/ для более подробности. (по умолчанию [pods])


--runtime-cgroups string

Необязательное абсолютное имя cgroups для создания и запуска среды выполнения.


Пожалуйста, посмотрите на них и убедитесь, что они удовлетворяют вашим потребностям.

Пожалуйста, дайте мне знать, если это помогло.

...