Поддержка Kubernetes для пространств имен пользователей докера

Docker поддерживает пользовательские пространства имен, так что пространство имен uid полностью отделено от хоста, что позволяет эффективно сопоставлять корень в контейнере с чем-то еще на хосте.

Есть ли какая-либо поддержка в Kubernetes для включения этой функции на базовом механизме докеров? Будет ли работать из коробки без проблем?

1 ответ

Решение

Таким образом, он еще не поддерживается, как Docker, согласно этому (как указано в комментариях) и этому.

Однако, если вы смотрите на изоляцию своих рабочих нагрузок, есть другие альтернативы (это не то же самое, но варианты довольно хороши):

Вы можете использовать Pod Security Policies и, в частности, вы можете использовать RunAsUser вместе с AllowPrivilegeEscalation = false. Политики безопасности модуля могут быть привязаны к RBAC, так что вы можете ограничить то, как пользователи запускают свои модули.

Другими словами, вы можете заставить своих пользователей запускать модули только как "youruser" и отключить privileged флаг в стручке securityContext, Вы также можете отключить sudo и в вашем контейнере изображения.

Кроме того, вы можете отказаться от возможностей Linux, в частности, CAP_SETUID, И даже более продвинутый - используйте профиль seccomp, используйте SElinux или профиль Apparmor.

Другие альтернативы для запуска ненадежных рабочих нагрузок (в альфа-версии на момент написания статьи):

Другие вопросы по тегам