как использовать динамическое предоставление томов Dynami c для многопользовательской среды - PullRequest
0 голосов
/ 30 января 2020

Я разработал веб-приложение для наших студентов и хотел бы запустить его сейчас в среде контейнера kubernetes. Каждый пользователь (может рассматриваться как арендатор) получает свою собственную прикладную среду (отношение 1: 1). среда приложения состоит из 2 модулей (1x веб-сервер, 1x база данных), определенных развертыванием и службой.

Я использую kubernetes v1.17.2, и я хотел бы использовать функцию Dynami c PersistentVolumeClaims вместе с возможностью сохранять данные конкретного c пользователя (арендатора) между удалением и повторным создание нового модуля (например, в случае обновления до новой версии приложения или после аппаратной перезагрузки).

Я думал об использовании переменной среды при создании модуля (например, user-1, user-2, user -x, ...) и используя эту информацию, чтобы разрешить повторное использование динамически создаваемого PersistentVolume c.

Есть ли передовая практика или концепция, как этого можно достичь?

С наилучшими пожеланиями Шейн

1 Ответ

0 голосов
/ 13 февраля 2020

Результат, которого вы достигнете sh, будет тесно связан с решением, которое вы используете в настоящее время.

Это будет отличаться между экземплярами Kubernetes, которые предоставляются в облаке (например, GKE), и экземплярами Kubernetes в помещениях (например: kubeadm, kubespray).

Говоря о возможности сохранения пользовательских данных пожалуйста, обратитесь к официальной документации: Kubernetes.io: постоянные тома, восстанавливающие . Он показывает способ сохранить данные внутри pv c.

Имейте в виду, что локальный поставщик stati c не поддерживает динамическую c подготовку.

Локальный том stati c, обеспечивающий управление, управляет Жизненный цикл PersistentVolume для предварительно выделенных дисков путем обнаружения и создания PV для каждого локального диска на хосте и очистки дисков после освобождения. Он не поддерживает динамическое предоставление c.

Github.com: локальное хранилище c инициатора

В отличие от что VMware Vsphere поддерживает динамическое обеспечение c. Если вы используете это решение, пожалуйста, обратитесь к этой документации

В вашем вопросе отсутствует конкретное c объяснение пользователей в вашей среде. Они внутри вашего приложения или снаружи? Приложение аутентифицирует пользователей? Одним из решений будет создание пользователей внутри Kubernetes с помощью учетных записей служб и ограничение их представления пространством имен, специально созданным для них.

Для создания учетной записи службы см. Kubernetes.io: настройка учетной записи службы .

Дополнительно вы также можете посмотреть Statefulsets .

...