0
我有一个需要处理作业的Kubernetes集群。这些作业的定义如下:Kubernetes pod在写入卷安装时内存不足
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下载,但不要认为这太重要)。
当我下载的文件超出了内存限制时,我的代码因“设备空间不足”错误而中断。这并不完全有意义,因为我将这些文件存储到一个由主机的存储支持的挂载中,这已经足够了。在docs中也提到memory
限制了容器可用RAM的数量,而不是存储容量。不过,当我将限制设置为XGi
时,它会在XGi
相当一致地下载后中断。
我的容器基于Ubuntu:14.04,运行shell脚本这样一行:
gsutil -m cp -r gs://some/cloud/location/* /workspace/files
我在做什么错?肯定会对我的容器有一些限制,所以我不能放弃限制。
这实际上可以解释它。我的应用程序在很大程度上依赖于创建临时文件,有任何改变它的机会,所以它使用磁盘呢?我不认为使用'emptydir'会是一个问题。 – Xocoatzin