Разрешения на запись тома

Как я могу предоставить пользователю без полномочий 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>
Другие вопросы по тегам