[英]How to create an upload folder for a web app in Kubernetes?
我们正在尝试Kubernetes,并考虑迁移我们的webapp,该webapp目前托管在具有vps和负载平衡功能的经典公共云中。
我想知道如何在dockerized应用程序中管理上传文件夹(具有写/读特权),该文件夹中存储了用户上传的文件。
当我们在应用程序中使用大量文件上传功能时,是否有可能拥有一个持久的数据存储空间,使webapp可以在其中上传文件并通过webapp管理它们? 我是否需要更改应用程序的代码并将文件保存到外部对象存储中,还是有一种通过本地文件系统执行此操作的更快方法?
谢谢 !
持久卷是正确的方法。 您可以在Veerendra提供的链接中了解更多信息。 为方便起见,您可以使用某些托管的Kubernetes引擎(例如GKE / EKS / AKS),因为其中的PV部分得到了简化。 您可以在此处找到GCP的指南。
关于重写应用程序-可能需要做一些小改动,因为您将需要使用Pod级数据库。 这也将是一个更合适的解决方案,因为您将基于Kubernetes的负载和其他几个功能,获得一种轻松缩放应用程序的方法。
我在这里不必担心LoadBalancer。 首先,您将对应用程序进行docker化,然后将其放入Pod中,然后将其作为Deployment的一部分,然后将存储抽象为PV。 要了解所有这些工作原理,您可以从这个简单的实验通过Redis部署PHP Guestbook应用程序开始 。 您可以在此处找到有关将PV与Deployments和StatefulSets一起使用的另一个有用资源。
我猜想,如果您要运行多个pod,您是否需要某种共享文件系统? 因此,所有上载的文档都可以在一个位置获得,而不是分散在多个持久卷中? 如果是这样,您需要某种分布式的文件存储,例如Amazon S3。 更好的是,您可以使用Kubernetes NFS,因此您的代码认为它使用的是本地文件系统,但它由分布式文件存储支持。
看一下这个例子: https : //github.com/kubernetes/examples/tree/master/staging/volumes/nfs 。 NFS可以使用来自GKE,Azure或AWS的永久卷。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.