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

问题描述

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

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

还有什么建议吗?

解决方法

您可以使用 elastic file system,它是 EKS 的 supported

在 Kubernetes 中运行的应用程序可以使用 EFS 文件系统来在横向扩展组中的 Pod 之间共享数据,或者与在 Kubernetes 内部或外部运行的其他应用程序共享数据。 EFS 还可以帮助 Kubernetes 应用程序实现高可用性,因为写入 EFS 的所有数据都会写入多个 AWS 可用区。如果 Kubernetes pod 终止并重新启动,CSI 驱动程序将重新连接 EFS 文件系统,即使 pod 在不同的 AWS 可用区中重新启动。

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

,

为什么不使用 git?

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

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