【发布时间】:2021-08-11 04:21:53
【问题描述】:
在this post 和this 之后,这是我的情况:
用户将图像上传到我的后端,设置如下:LB -> Nginx Ingress Controller -> Django (Uwsgi)。图像最终将被上传到对象存储。因此,Django 将临时将图像写入磁盘,然后将上传任务委托给异步服务 (DjangoQ),因为上传到对象存储可能会很耗时。这里有一个问题:由于我的 Django 副本和 DjangoQ 副本都是独立的 pod,因此该文件在 DjangoQ pod 中不可用。像往常一样,任务队列由 redis 代理管理,任何随机的 DjangoQ pod 都可以使用该任务。
我需要一种方法来与 DjangoQ 共享 Django 创建的磁盘文件。
上面提到的帖子基本上提到了两个解决方案:
- 解决方案 1:NFS 将磁盘挂载到所有 pod 上。这似乎有点过头了,因为共享卷只存储文件几秒钟,直到上传到对象存储完成。
- 解决方案 2:Django 服务应该通过 API 使文件可用,DjangoQ 将使用该 API 从另一个 pod 访问文件。这看起来不错,但我不知道如何继续......我是否应该创建第二个 Django/uwsgi 应用程序作为侧容器,它会监听另一个端口并发送带有文件的 HTTPResponse?文件可以流式传输吗?
【问题讨论】:
标签: django kubernetes nfs django-q