Skip to content

Jak wygląda proces Schedule w Kubernetes?

Etapy Schedulingu

Proces Scheduling dzieli się na 4 etapy, oto one.

1. Scheduling Queue

Sprawdzany jest priorytet, jaki jest najwyższy określony dla zasobu (np. Poda). Określany jest z wykorzystaniem Priority Class. Pody umieszczane są w kolejce i na takiej podstawie są analizowane, w jakiej kolejności będą uruchamiane. Gdy taki Pod jest brany już pod uwagę, analiza przechodzi do kolejnego etapu.

Domyślnym pluginem do tego kroku jest PrioritySort.

2. Filtering

W tym etapie sprawdzane są Requesty Poda i wykluczane są Nody, które nie spełniają wymagań. Brane są pod uwagę tylko te Nody, które mają wystarczająco dużo wolnych zasobów jak w sekcji Request.

Odpowiada za to Plugin NodeResourceFit.

Dodatkowo w tym kroku też przypisywany jest węzeł z użyciem Pluginu NodeName, który sprawdza, czy w definicji Poda jest określony konkretny Pod na jakim ma być odpalony Pod.

3. Scoring

W tym kroku wyselekcjonowane węzły są punktowane z użyciem pluginu NodeResourceFit. Sprawdzane jest ile wolnego CPU i Memory jest, czym wyżej, tym bardziej preferowany jest Wezeł i większa szansa, że Pod zostanie tam umieszczony.

4. Binding

Ostatnim etapem jest przypisanie Poda do węzła przez Plugin DefaultBinder. On przypisuje już na stałe Poda do konkretnego węzła, po tym kroku Pod będzie się na konkretnym Workerze znajdował.