Azure Kubernetes Fleet Manager Scheduler und Schedulingframework
Dieser Artikel bietet einen konzeptionellen Überblick über den Scheduler und das Schedulingframework in Azure Kubernetes Fleet Manager (Fleet).
Was ist der Scheduler?
Der Scheduler ist eine Kernkomponente des Flotten-Workloads mit der Hauptverantwortung, Planungsentscheidungen für ein Bündel von Ressourcen auf der Grundlage der letzten ClusterSchedulingPolicySnapshot
, die von ClusterResourcePlacement
erzeugt wurden, zu treffen.
Standardmäßig wird der Scheduler im Batchmodus ausgeführt, wodurch die Leistung verbessert wird. In diesem Modus wird ein ClusterResourceBinding
von einer ClusterResourcePlacement
nach Möglichkeit an mehrere Cluster gebunden.
Batchmodus
Das Planen von Ressourcen innerhalb eines ClusterResourcePlacement
ist mit mehr Abhängigkeiten verbunden als die Planung von Pods innerhalb einer Kubernetes-Bereitstellung. Es gibt zwei erwähnenswerte Unterschiede:
- In einem
ClusterResourcePlacement
können mehrere Replikate von Ressourcen nicht auf demselben Cluster geplant werden. ClusterResourcePlacement
unterstützt unterschiedliche Platzierungstypen innerhalb eines einzelnen Objekts.
Weitere Informationen finden Sie in der Upstream-Fleet-Scheduler-Dokumentation.
Was ist das Schedulingframework?
Das Fleet-Schedulingframework ist eng an das native Kubernetes-Schedulingframework angelehnt und enthält mehrere Änderungen und maßgeschneiderte Funktionen zur Unterstützung der Fleet-Workloads.
Der Hauptvorteil dieses Frameworks ist seine Fähigkeit, Plugins direkt in den Scheduler zu kompilieren. Seine API erleichtert die Implementierung verschiedener Scheduling-Funktionen als Plugins und sorgt für einen leichtgewichtigen und wartbaren Kern.
Der Fleet Scheduler integriert die folgenden grundlegenden integrierten Plug-Ins:
- Topologieverteilungs-Plug-In: Unterstützt die
TopologySpreadConstraints
in der Platzierungsrichtlinie. - Clusteraffinitäts-Plug-In: Erleichtert die Affinitätsklausel in der Platzierungsrichtlinie.
- „Gleiche Platzierung“-Affinitäts-Plug-In: Speziell für Fleet entwickelt und verhindert, dass mehrere Replikate innerhalb desselben Clusters platziert werden.
- Clusterberechtigungs-Plug-In: Ermöglicht die Clusterauswahl basierend auf bestimmten Statuskriterien.
- Taint- und Toleranz-Plug-In: ermöglicht die Clusterauswahl basierend auf Taints im Cluster und Toleranzen bei
ClusterResourcePlacement
.
Weitere Informationen finden Sie in der Open-Source-Fleet-Scheduling-Framework-Dokumentation.
Nächste Schritte
Azure Kubernetes Service