Разрешения на запись тома
Как я могу предоставить пользователю без полномочий root полный доступ к пути к подключенному тому в Kubernetes (pod)?
Я использую том на хосте (путь /workspace/projects) и записываю в каталог, как показано ниже.
volumeMounts:
-name: workspace
mountPath: /workspace/projects
Поскольку я копирую содержимое репозитория git в каталог / projects, git по умолчанию устанавливает разрешение 755. Я хочу установить разрешение 775, так как не могу писать в каталог / project.
Не могли бы вы сообщить мне, как лучше всего это сделать? Я видел InitContainers и не уверен, есть ли лучшее решение. Благодарю за любую помощь! Заранее спасибо!
1 ответ
Когда вам нужно запустить процесс внутри контейнера как пользователь без полномочий root и вы монтируете том в pod. Но объем естьroot:root
разрешение.
Предоставить доступ определенному пользователю initContainer можно одним способом, например следующим:
initContainers:
- name: volume-mount-permission
image: busybox
command: ["sh", "-c", "chmod 775 /workspace/projects && chown -R <user> /workspace/projects"]
volumeMounts:
-name: workspace
mountPath: /workspace/projects
Вы также можете использовать контекст безопасности. Создайте пользователя и группу, добавьте пользователя в группу в Dockerfile и установите следующее в спецификации
spec:
securityContext:
runAsUser: <UID>
runAsGroup: <GID>
fsGroup: <GID>