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