繁体   English   中英

写入卷安装时Kubernetes Pod内存不足

[英]Kubernetes pod running out of memory when writing to a volume mount

我有一个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数量,而不是存储空间。 不过,当我将限制设置为XGiXGi下载始终如一地会打破。

我的容器基于ubuntu:14.04,运行带有以下行的shell脚本:

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

我究竟做错了什么? 肯定需要对我的容器有一些限制,所以我不能只是放弃这些限制。

/tmp文件系统通常由tmpfs支持,后者将文件存储在内存中而不是磁盘上。 我的猜测是您的节点上的情况如此,并且内存已正确装入容器中。 您可以改用emptydir卷吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM