2017-04-06 46 views
0

假設我有1000個相同的豆莢最終要運行,但節點資源只允許10個豆莢並行運行。調度比可用資源更多的豆莢

每個吊艙最終會移除它們的RC,如果它們乾淨地退出,所以給予足夠的時間,所有吊艙都應該運行。

如果我在同一時間安排所有1000個豆莢,但其中990個豆莢最初將處於掛起狀態。 The scheduler將使所有990豆莢保持在試圖安排的忙碌環路上,並且在移除10個豆莢中的一個豆莢後,該操作只會成功(對於某個豆莢)。

在我的情況下,這個繁忙的循環很不理想,因爲它可能會佔用所有調度程序的可用資源。是否有由kubernetes本地提供的替代解決方案?看起來很清楚,這種調度方式的特定行爲比你能夠處理的更多,並不是kubernetes優化的。

+1

這聽起來像你做你的豆莢奇怪。在這裏使用喬布斯會更有意義嗎? –

+0

你必須解釋更多關於你的用例,因爲它顯然沒有意義一個接一個運行1000個相同的豆莢(因爲它們是相同的)。 –

+0

@PixelElephant:事實證明,我並不知道工作存在,這正是我想要的。如果您想以此作爲答案,我很樂意接受它! – Gabriel

回答

1

這種類型的工作負載更適合於Job資源。

既然你有豆莢運行固定數量的,最簡單的方式做這將是創建工作與.spec.completions設置爲1000

然後,您可以控制通過.spec.parallelism同時運行的豆莢數。默認情況下,它設置爲1,這意味着一次只能運行一個pod,但您可以將其設置爲更高的值以使作業完成得更快(例如10,因爲這是您的節點可以處理的限制)。