Поддержка Kubernetes для пространств имен пользователей докера
Docker поддерживает пользовательские пространства имен, так что пространство имен uid полностью отделено от хоста, что позволяет эффективно сопоставлять корень в контейнере с чем-то еще на хосте.
Есть ли какая-либо поддержка в Kubernetes для включения этой функции на базовом механизме докеров? Будет ли работать из коробки без проблем?
1 ответ
Таким образом, он еще не поддерживается, как Docker, согласно этому (как указано в комментариях) и этому.
Однако, если вы смотрите на изоляцию своих рабочих нагрузок, есть другие альтернативы (это не то же самое, но варианты довольно хороши):
Вы можете использовать Pod Security Policies и, в частности, вы можете использовать RunAsUser вместе с AllowPrivilegeEscalation = false. Политики безопасности модуля могут быть привязаны к RBAC, так что вы можете ограничить то, как пользователи запускают свои модули.
Другими словами, вы можете заставить своих пользователей запускать модули только как "youruser" и отключить privileged
флаг в стручке securityContext
, Вы также можете отключить sudo
и в вашем контейнере изображения.
Кроме того, вы можете отказаться от возможностей Linux, в частности, CAP_SETUID
, И даже более продвинутый - используйте профиль seccomp, используйте SElinux или профиль Apparmor.
Другие альтернативы для запуска ненадежных рабочих нагрузок (в альфа-версии на момент написания статьи):