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 inder 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.

Dieser Screenshot zeigt ein Übersichtsdiagramm des Fleet Schedulingframeworks.

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 Upstream-Fleet Schedulingframework-Dokumentation.

Nächste Schritte