Достигаете ли вы в Kubernetes развертывания приложения с сохранением состояния с короткими и эксклюзивными пользовательскими сеансами? - PullRequest
0 голосов
/ 05 декабря 2018

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

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

В частности, я ожидаю, что у меня будут некоторые приложения, которые образуют основу высокоинтерактивного пользовательского интерфейса.Бэкэнд представит представления, полученные из больших наборов данных, основанных на постоянном или частом взаимодействии с пользователем.Подумайте о чем-то вроде однопользовательской игры или программы САПР.

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

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

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

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

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

Может кто-нибудь предложить лучший подход для рассмотрения?

...