issues
search
AliyunContainerService
/
gpushare-scheduler-extender
GPU Sharing Scheduler for Kubernetes Cluster
Apache License 2.0
1.36k
stars
303
forks
source link
pod运行完成后,插件更新gpu池不及时。当有多个pending的pod排队分配资源时,最后一个pod会一直等到flushUnschedulablePodsLeftover才会重新分配资源
#187
Open
huiyangz
opened
1 year ago
huiyangz
commented
1 year ago
现象:同时创建多个pod,因为资源不足会排队等待k8s分配资源。最后一个pending的pod在新版本的k8s下,会额外等待5分钟才能申请到资源.
原因
gpushare-scheduler-extender插件是监听k8s的pod event来更新自己的gpu资源池
最后一个pod申请插件的filter时,插件还没有处理完上一个pod 完成的event来释放资源,所以这时候filter是失败的。
unschedulablePods队列中的pod没有机会触发重试,只能等5分钟一轮的flushUnschedulablePodsLeftover(旧版本k8s是1分钟)
备注
k8s有很多种情况下,会尝试把unschedulablePods放入backoffQ或activeQ,其中最重要的就是当节点删除Pod缓存时会触发movePodsToActiveOrBackoffQueue,所以pending状态的pod在前一个pod执行完后,会马上重试分配资源。
k8s还有一个机制,就是5分钟定时触发flushUnschedulablePodsLeftover,重试所有的unschedulablePods