Централизованная и версионная файловая система для веб-приложения, развернутого в Kubernetes

#amazon-web-services #amazon-s3 #kubernetes #kubernetes-pod #s3fs

#amazon-веб-сервисы #amazon-s3 #kubernetes #kubernetes-pod #s3fs

Вопрос:

Я пытаюсь создать централизованный файловый репозиторий, в который я могу загружать все файлы конфигурации, необходимые для запуска приложения, которое развертывается как модуль внутри Kubernetes. Есть предложения по достижению этой функциональности? Может ли файловый репозиторий версировать загруженные файлы?

Я вижу, что для достижения этой цели можно использовать s3fs-fuse, но мне не хватает этого, он не будет поддерживать управление версиями добавленных файлов конфигурации в корзине S3. https://github.com/s3fs-fuse/s3fs-fuse

Есть другие предложения?

Ответ №1:

Вы можете использовать эластичную файловую систему, которая поддерживается EKS:

Приложения, работающие в Kubernetes, могут использовать файловые системы EFS для обмена данными между модулями в расширяемой группе или с другими приложениями, работающими внутри или за пределами Kubernetes. EFS также может помочь сделать приложения Kubernetes высокодоступными, поскольку все данные, записанные в EFS, записываются в несколько зон доступности AWS. Если модуль Kubernetes завершается и запускается повторно, драйвер CSI повторно подключит файловую систему EFS, даже если модуль повторно запущен в другой зоне доступности AWS.

Но это не S3, и у него нет управления версиями файлов, как у S3. Вам придется добавить такую функциональность самостоятельно, например, сохранив все в репозитории git в файловой системе EFS.

Комментарии:

1. Спасибо за ваш ответ. Как вы думаете, в EFS мы можем вручную загружать файлы и редактировать файлы?

2. @babs84 Да. EFS — это управляемая файловая система NFS. Таким образом, он ведет себя точно так же, как обычная NFS. Это не хранилище объектов, как S3.

3. Спасибо. Последний вопрос о достижении управления версиями. Вы упомянули, что мы можем добиться управления версиями, сохранив все в репозитории git в файловой системе EFS? что вы имеете в виду под этим? В пользовательском интерфейсе Amazon EFS также нет возможности загружать файлы

4. @babs84 Это то, что вы должны сделать сами, как вы бы делали на локальной рабочей станции. EFS не имеет встроенного механизма управления версиями.

5. @babs84 Нет проблем. Рад, что смог помочь.

Ответ №2:

Почему бы не использовать git?

В следующей статье приведен пример, который запускает a git clone в initContainer:

https://blog .frankel.ch/versatility-kubernetes-initcontainer/