Kubernetes runAsUser создать домашний каталог - PullRequest
0 голосов
/ 12 декабря 2018

Мне было поручено запустить развертывание k8s без полномочий Root.Сторонней библиотеке, которую мы используем, нужен домашний каталог, чтобы пользователь существовал и имел права на запись.Я пытался использовать initContainers, но любые сделанные мной изменения по существу отбрасываются, и, конечно, у меня нет прав на настоящий контейнер

. Я бы хотел избежать настройки всего этого в Dockerfile.Есть ли способ создать домашний каталог пользователя для контейнера kubernetes, который запускается пользователем?

1 Ответ

0 голосов
/ 13 декабря 2018

Kubernetes использует контейнерный движок для запуска модуля с определенным изображением. Большинство Бобы могут умереть в любое время, поэтому они должны быть либо основаны на изображении с желаемым состоянием, либо сохраняться в другом состоянии.

Если есть состояние, которое вы хотели бы сохранить, и использование Dockerfile / пользовательского изображения недоступно, я предлагаю вам также:

  1. Настройка громкости,Том смонтировать каталог пользователя так, чтобы файлы никогда не удалялись и права доступа также сохранялись.https://kubernetes.io/docs/concepts/storage/volumes/#hostpath

  2. Запустите контейнер вместе с коляской.Создайте модуль, который имеет контейнер с коляской, который может выполнять команды в той же сети и может совместно использовать монтирование тома с основным контейнером.

т.е.возможно, вы можете создать общий том, затем создать образ, который преобразует каталог в качестве корневого, и использовать этот образ для контейнера с коляской.https://kubernetes.io/docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume/#creating-a-pod-that-runs-two-containers

Однако самое простое решение может состоять в том, чтобы просто изменить разрешения в Dockerfile, например, добавив несколько строк в Dockerfile.Если вы добавляете строки к вашему существующему Dockerfile, обязательно добавьте их до CMD / ENTRYPOINT

Если вы основываете это изображение на своем уже существующем, убедитесь, что оно расположено в верхней части вашегоDockerfile

FROM Myoriginalimage

Команды Dockerfile:

USER root RUN chown $USER:$USER_GROUP -R $USER_HOME_DIR USER $USER убедитесь, что ваш CMD / ENTRYPOINT идет после этого, если вы редактируете существующий Dockerfile

Дополнительная информация о Dockerfile: https://www.linode.com/docs/applications/containers/how-to-use-dockerfiles/

После этого вы можете перейти в реестр, например dockerhub, при условии, что у вас нет личного реестра или по какой-либо причине нет доступа к нему.

  • создать учетную запись на hub.docker.com
  • соответствующим образом пометить свое изображение
  • docker login
  • docker push your-image

Подробнее смотрите здесь: https://docs.docker.com/docker-hub/repos/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...