写入卷装时,Kubernetes pod内存不足

我有一个Kubernetes集群,需要处理作业。 这些工作定义如下:

apiVersion: batch/v1 kind: Job metadata: name: process-item-014 labels: jobgroup: JOB_XXX spec: template: metadata: name: JOB_XXX labels: jobgroup: JOB_XXX spec: restartPolicy: OnFailure containers: - name: worker image: gcr.io/.../worker volumeMounts: - mountPath: /workspace name: workspace resources: limits: cpu: 500m memory: 1Gi requests: cpu: 500m memory: 512Mi volumes: - name: workspace hostPath: path: /tmp/client-workspace 

请注意,我正在试图将主机中的一个文件夹挂载到容器( workspace )中。 还要注意定义的内存限制。 在我的容器上,我下载了一些文件到workspace ,其中一些文件非常大(它们是从GCS的gsutil下载的,但是不要以为太重要)。

当我下载的文件超出内存限制,我的代码打破了“设备空间不足”的错误。 这并不完全有意义,因为我将这些文件存储到一个由主机的存储支持的挂载中,这已经足够了。 在文档中还提到, memory限制是可用于容器的RAM的量,而不是存储量。 不过,当我设置XGi的限制时,在XGi下载相当稳定之后就会中断。

我的容器是基于Ubuntu 14.04,运行一个像这样的线脚本:

 gsutil -m cp -r gs://some/cloud/location/* /workspace/files 

我究竟做错了什么? 我的容器肯定会有一些限制,所以我不能放弃限制。

/tmp文件系统通常由tmpfs支持, tmpfs将文件存储在内存中而不是磁盘上。 我的猜测是,你的节点就是这种情况,并且内存正在被正确地充电到容器中。 你可以使用emptydir卷吗?