kubernetes Azure k8s上容器中的临时文件

3htmauhk  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(1)|浏览(119)

我有一个在.NET 6中运行代码的容器,在Azure k8s上运行。在这个容器中,我处理来自服务总线主题的消息。
场景描述:我必须调用一个.exe(大小约90 MB),它可以输入一个文件,并在磁盘上的一个给定的物理子文件夹中生成一个响应。响应包括两个文件,我上传到一个blob存储。最后,我删除了这些临时文件。每天会有大约10000个电话,每个电话的持续时间从几秒到1-2分钟不等。
问:我应该在哪里存储exe?它的内容每年会改变2-3次(所以很少)。我想把它包含在docker镜像中,例如在\app\resources中,然后调用它在同一路径中创建一个随机的临时文件夹,每次执行一个。在替代方案中,我考虑Azure文件共享(但我担心的是流量成本)。数据是暂时的,所以如果吊舱坏了,我不在乎他们。
我已经读过Docker中的卷,但我没有找到任何适合我问题的问题/主题,所以我在寻找一些建议。

h6my8fg2

h6my8fg21#

你有几个选项来管理你的容器内的临时文件,我会采取tmpfs mounts也考虑设置一个大小,因为它是不受限制的默认使用tmpfs-size标志。
卷和绑定装载允许您在主机和容器之间共享文件,以便即使在容器停止后也可以保留数据。
如果你在Linux上运行Docker,你还有第三个选择:tmpfs挂载。当您使用tmpfs挂载创建容器时,该容器可以在容器的可写层之外创建文件。
与卷和绑定装载相反,tmpfs装载是临时的,并且仅在主机内存中持久化。当容器停止时,tmpfs挂载将被移除,写入其中的文件将不会被持久化。
你应该考虑的另一个选项是:启动一个包含卷的容器,这样您就可以完全控制、装载、清理、删除卷。

相关问题