gang scheduler在kube-batch中的實現

目錄

一、名詞解釋

二、流程圖


gang scheduler介紹:一個kube-batch作業(kube-batch job)可能有多個pods, 這些pods要不全部執行,要不一個都不執行。

一、名詞解釋

  • k8s job:一些pod集合

  • kube-batch task: pod,一個kube-batch task就是一個pod

  • kube-batch podGroup: 一組pod,這是kube-batch自定義的crd,主要用來實現gang scheduler。通過設置podgroup的minNumber,達到每次調度要麼執行minNumber個pods.要麼一個都不執行。

  • kube-batch job: 一組pod,指向某podGroup的所有pod(一個kube-batch job就是一個podGroup,見下圖),可以對應一個或多個k8s job

    kube-batch\pkg\scheduler\cache\event_handlers.go

注意:

  1. 一個k8s job必須指定一個podGroup,否則會指定一個shadow podGroup

  2. 一個kube-batch job 可以對應一個或多個k8s job

    舉例:

    如果有一個k8s的job, 假設爲Job1,有2個pod, 他指定的podgroup是gp1. 同時還有一個k8s的job, 假設爲Job2,有2個pod, 他指定的podgroup也可以是gp1.

    同時提交這倆個k8s job。

    在kube-batch看來,當前要調度的只有一個kube-batch 作業。這個kube-batch job總共有4個Tasks(pod)需要綁定。

二、流程圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章