Resourcequota&多个内存限制的作业 - 重新启动挂起的作业需要永远

时间:2017-04-27 10:06:50

标签: kubernetes jobs

我正在测试Kubernetes,目的是能够在队列中运行批处理作业。我用

创建了一个resourcequota

$ kubectl create quota memoryquota --hard=memory=450Mi

将使用的命名空间中所有容器的总内存使用量限制为450M。我还有一个脚本run-memhog.sh,它创建一个内存限制为X并使用Y兆内存的memhog作业:

kubectl run memhog-$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 8 | head -n 1)
--replicas=1 --restart=OnFailure --limits=memory=$1Mi,cpu=100m --record
--image=derekwaynecarr/memhog --command -- memhog -r100 $2m

正确运行$ for i in {1..4}; do ./run-memhog.sh 200 100; done会导致创建四个作业,其中两个作业在大约20秒内完成,另外两个作为预期,会收到FailedCreate警告并显示消息

  

创建错误:pods" memhog-plgxke9m - "被禁止:超出配额:memoryquota,请求:内存= 200Mi,使用:内存= 400Mi,限制:内存= 450Mi

正在运行$ kubectl get jobs会显示预期结果:

NAME              DESIRED   SUCCESSFUL   AGE
memhog-2covdiww   1         0            35s
memhog-6bg0b6g6   1         1            35s
memhog-plgxke9m   1         0            35s
memhog-w2ujbg1b   1         1            35s

到目前为止一切都还可以,并且我希望这两个仍然未完成的作业在资源可用时立即开始运行(=在之前的pod /容器被清除之后)。然而,工作处于待处理状态,谁知道谁知道多长时间 - 我在两小时后检查了他们仍然没有开始运行,之后我让服务器一夜之间运行,并且在那段时间内工作已经完成。< / p>

我的问题是:导致这些工作待了这么长时间的原因是什么?无论如何,我可以更频繁地轮询资源可用性吗?我试图搜索kubectl引用和kubernetes文档,但没有找到任何修复/设置。

0 个答案:

没有答案