簡體   English   中英

Kubernetes Pod N:M調度方法

[英]Kubernetes pods N:M scheduling how-to

批處理計算,蒙特卡洛(Monte Carlo),使用Docker映像,在Google雲上運行並由Kubernetes管理的多個作業。 沒有復制控制器,只有具有NoRestart策略的多個Pod將計算的有效負載傳遞到我們的服務器。 到現在為止還挺好。 問題是,我有N節點/小兵的集群,並且有M個作業要計算,其中M > N 因此,我想立即觸發M Pod,並告訴Kubernetes以這樣的方式調度它,以便在給定的時間僅N正在運行,而其他所有都保持為Pending狀態。 一旦完成一個Pod,就計划將下一個Pod從Pending轉到Running,依此類推,以此類推,直到完成所有M Pod。

有可能這樣做嗎?

是的,您可以讓他們都要求一個資源,每個節點上只有一個資源,那么調度程序一次將不能調度N個以上的資源。 最常見的方法是讓每個Pod在其containers規范的ports部分中要求一個hostPort

但是,我不能完全確定為什么您要將系統限制為每個節點一個這樣的Pod。 如果有足夠的資源可在每個節點上一次運行多個資源,則應加快您的工作速度,使其運行。

僅作記錄,在與Alex討論,反復試驗和對好的數字進行二進制搜索之后,對我有用的是將Pod JSON中的CPU資源限制設置為:

    "resources": {
        "limits": {
            "cpu": "490m"
        }
    }

我不知道這個特定的值如何以及為什么會影響Kubernetes調度程序,但是它使節點一直在運行任務,每個節點在任何給定時刻都只有一個Pod在運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM