用于部署在 Kubernetes 中的 Web 应用程序的基于集中式和版本化文件的系统

Centralized & versioned file based system for a web application deployed in Kubernetes

我正在尝试创建一个基于文件的集中式存储库,我可以在其中将应用程序所需的所有配置文件上传到 运行,该存储库作为 Kubernetes 中的 pod 部署。关于实现此功能的任何建议?基于文件的存储库可以对上传的文件进行版本控制吗?

我看到 s3fs-fuse 可以用来实现这一点,但我没有看到,它不支持对 S3 存储桶中添加的配置文件进行版本控制。 https://github.com/s3fs-fuse/s3fs-fuse

还有其他建议吗?

您可以通过 EKS 使用 elastic file system which is supported

Applications running in Kubernetes can use EFS file systems to share data between pods in a scale-out group, or with other applications running within or outside of Kubernetes. EFS can also help Kubernetes applications be highly available because all data written to EFS is written to multiple AWS Availability zones. If a Kubernetes pod is terminated and relaunched, the CSI driver will reconnect the EFS file system, even if the pod is relaunched in a different AWS Availability Zone.

但它不是 S3,它没有像 S3 那样的文件版本控制。您必须自己添加此类功能,例如通过将所有内容保存在 EFS 文件系统的 git 存储库中。

为什么不使用 git?

以下文章包含一个在 initContainer 中运行 git clone 的示例:

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