В настоящее время я изучаю Kubernetes, и я застрял в том, как справиться со следующей ситуацией:
У меня есть приложение Spring Boot, которое обрабатывает файлы (фотографии, PDF и т. Д.), Загруженные пользователями,пользователи могут также загрузить эти файлы.Это приложение также производит журналы, которые распространяются в 6 различных файлов.Чтобы сделать мою жизнь проще, я решил создать корневой каталог, содержащий 2 подкаталога (1 каталог для данных пользователей и 1 для журналов), чтобы приложение работало только с 1 каталогом (appData
)
.appData
|__ usersData
|__ logsFile
Я быЯ хотел бы использовать GKE (Google Kubernetes Engine) для развертывания этого приложения, но у меня есть следующие проблемы:
- Как обрабатывать несколько реплик, которые будут одновременно считывать / записывать данные + журналы в
appData
каталог? - Что касается журналов, возможно ли иметь несколько модулей, записывающих в один файл?
- Скажем, у нас есть 3 реплики (Pod-A, Pod-B и Pod-C), если пользователь A загружает файл, обрабатываемый Pod-B, как Pod-A и Pod-C обнаружат этот файл, если один и тот же пользователь позже запросит его файл?
- Должна ли каждая реплика иметь свой собственный том?(Я хотел бы избежать этой ситуации, которая, кажется, имеет место при использовании StatefulSet)
- Должна ли я иметь только одну реплику?(использование Kubernetes будет бесполезно в этом случае)
Те же вопросы о репликах базы данных.Я использую PostgreSQL
и у меня такие же вопросы.Если у нас есть несколько реплик, так как запросы произвольно отправляются в реплики, как быть уверенным, что запрашивающие данные вернут результат?
Я знаю, что здесь много вопросов.Большое спасибо за ваши разъяснения.