Изоляция нескольких смонтированных файловых систем пространства пользователя на работающем микросервисе - PullRequest
1 голос
/ 24 февраля 2020

Моя ситуация: у меня есть микросервис под управлением Ubuntu 18.04 на GKE для оценки кода пользователя. Каждый раз, когда пользователь входит в свой проект, служба получает идентификатор пользователя и идентификатор проекта и устанавливает правильную корзину GCS через файловую систему пользовательского пространства на основе этих идентификаторов. К этому сервису могут обращаться несколько пользователей одновременно.

Моя цель: как можно добиться изоляции пользователей таким образом, чтобы каждый пользователь "жил" в своей файловой системе и не мог "видеть" другие подключенные файловые системы?

Идеи:

  • Запуск контейнера docker внутри контейнера docker
  • Запуск модулей по требованию при каждом входе нового пользователя в систему
  • Изоляция пользователей на уровне ОС

1 Ответ

1 голос
/ 25 февраля 2020

Как насчет того, чтобы ваше приложение могло создавать Pod для каждого пользователя, используя SecurityContext ?

Вы можете указать fsGroup (из томов do c: , которые управление владением поддержкой модифицируется так, чтобы GID, указанный в fsGroup ), принадлежал и мог записываться для улучшения требуемой сегрегации.

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

...