Optimierung der Pod-Zuweisung: QueueingHint in Kubernetes v1.32

Entdecken Sie, wie QueueingHint in Kubernetes v1.32 die Effizienz der Pod-Zuweisung verbessert und DevOps-Teams neue Möglichkeiten eröffnet.

Meta: ayedo Redaktion · 15.12.2024 · ⏳ 3 Minuten · Alle Blogs →
Tagskubernetes · kubernetes-news · container · devops

Der Kubernetes Scheduler ist das Herzstück, das bestimmt, auf welchen Knoten neue Pods laufen. Er verarbeitet diese neuen Pods einen nach dem anderen. Daher wird die Effizienz des Schedulers mit der Größe Ihrer Cluster immer wichtiger.

Im Laufe der Jahre hat das Kubernetes SIG Scheduling die Durchsatzrate des Schedulers durch verschiedene Verbesserungen optimiert. In diesem Artikel stellen wir eine wesentliche Neuerung des Schedulers in Kubernetes v1.32 vor: ein Scheduling-Kontextelement namens QueueingHint. Hier erfahren Sie, wie QueueingHint die Effizienz der Pod-Zuweisung verbessert.

Scheduling-Warteschlange

Der Scheduler speichert alle nicht zugewiesenen Pods in einem internen Element, das als Scheduling-Warteschlange bezeichnet wird.

Die Scheduling-Warteschlange besteht aus folgenden Datenstrukturen:

  • ActiveQ: Enthält neu erstellte Pods oder Pods, die bereit sind, erneut zur Zuweisung verarbeitet zu werden.
  • BackoffQ: Enthält Pods, die bereit sind, erneut zugewiesen zu werden, aber auf das Ende eines Backoff-Zeitraums warten müssen. Der Backoff-Zeitraum hängt von der Anzahl der erfolglosen Zuweisungsversuche ab, die der Scheduler für diesen Pod unternommen hat.
  • Unschedulable Pod Pool: Enthält Pods, die der Scheduler nicht zuweisen kann, aus einem der folgenden Gründe:
    • Der Scheduler hat zuvor versucht, die Pods zuzuweisen, konnte dies jedoch nicht. Seit diesem Versuch hat sich der Cluster nicht so verändert, dass diese Pods zuweisbar wären.
    • Die Pods werden von PreEnqueue-Plugins davon abgehalten, an den Zuweisungszyklen teilzunehmen, zum Beispiel haben sie ein Scheduling-Gate und werden durch das Scheduling-Gate-Plugin blockiert.

Scheduling-Framework und Plugins

Der Kubernetes-Scheduler wird gemäß dem Kubernetes Scheduling-Framework implementiert.
Und alle Funktionen zur Zuweisung sind als Plugins implementiert (z.B. wird Pod-Affinität im InterPodAffinity-Plugin implementiert).

Der Scheduler verarbeitet wartende Pods in Phasen, die als Zyklen bezeichnet werden:

  1. Scheduling-Zyklus: Der Scheduler nimmt wartende Pods aus der ActiveQ-Komponente der Scheduling-Warteschlange einen nach dem anderen. Für jeden Pod führt der Scheduler die Filter- und Bewertungslogik jedes Scheduling-Plugins aus. Der Scheduler entscheidet dann, auf welchem Knoten der Pod platziert werden soll oder ob der Pod zu diesem Zeitpunkt nicht zugewiesen werden kann.

    Wenn der Scheduler entscheidet, dass ein Pod nicht zugewiesen werden kann, gelangt dieser Pod in den Unschedulable Pod Pool der Scheduling-Warteschlange. Wenn der Scheduler jedoch beschließt, den Pod auf einem Knoten zu platzieren, geht der Pod in den Bindungszyklus.

  2. Bindungszyklus: Der Scheduler kommuniziert die Knotenplatzierungsentscheidung an den Kubernetes-API-Server. Dieser Vorgang bindet den Pod an den ausgewählten Knoten.

Abgesehen von einigen Ausnahmen gelangen die meisten nicht zugewiesenen Pods nach jedem Scheduling-Zyklus in den Unschedulable Pod Pool. Die Unschedulable Pod Pool-Komponente ist entscheidend, da der Scheduling-Zyklus Pods einzeln verarbeitet. Wenn der Scheduler ständig versuchen müsste, unschedulable Pods zu platzieren, anstatt diese Pods in den Unschedulable Pod Pool zu übergeben, würden viele Scheduling-Zyklen mit diesen Pods verschwendet werden.

Mit der Einführung von QueueingHint in Kubernetes v1.32 können Entwickler und DevOps-Teams die Effizienz ihrer Pod-Zuweisungsprozesse erheblich steigern. ayedo unterstützt Sie dabei, Kubernetes optimal zu nutzen und Ihre Cloud-Infrastruktur zu optimieren.


Quelle: Kubernetes Blog

ayedo Alien Kubernetes Hat

Hosten Sie Ihre Apps bei ayedo

Profitieren Sie von skalierbarem App Hosting in Kubernetes, hochverfügbarem Ingress Loadbalancing und erstklassigem Support durch unser Plattform Team. Mit der ayedo Cloud können Sie sich wieder auf das konzentrieren, was Sie am besten können: Software entwickeln.

Jetzt ausprobieren →

Ähnliche Inhalte

Alle Blogs →



ayedo Redaktion · 08.06.2025 · ⏳ 3 Minuten

Neue Wege im KI-Management: Die Gateway API Inference Extension

Moderne generative KI- und große Sprachmodelle (LLMs) stellen Kubernetes vor einzigartige Herausforderungen im Datenverkehrsmanagement. Im Gegensatz zu typischen kurzlebigen, zustandslosen Webanfragen …

Lesen →

Neue Wege im KI-Management: Die Gateway API Inference Extension
ayedo Redaktion · 06.06.2025 · ⏳ 2 Minuten

Wie Sie sicherstellen, dass Ihr Sidecar-Container zuerst startet

Einführung in die Verwaltung von Sidecar-Containern in Kubernetes In der Welt von Kubernetes sind Sidecar-Container nützliche Helfer, die Funktionen erweitern oder zusätzliche Aufgaben für die …

Lesen →

Wie Sie sicherstellen, dass Ihr Sidecar-Container zuerst startet
ayedo Redaktion · 05.06.2025 · ⏳ 2 Minuten

Gateway API v1.3.0: Neue Funktionen für flexibles Request Mirroring und mehr!

Wir freuen uns, die allgemeine Verfügbarkeit der Gateway API v1.3.0 bekanntzugeben! Diese Version wurde am 24. April 2025 veröffentlicht und bringt spannende neue Funktionen mit sich. Was ändert sich …

Lesen →

Gateway API v1.3.0: Neue Funktionen für flexibles Request Mirroring und mehr!
Katrin Peter · 03.06.2025 · ⏳ 2 Minuten

Die vergessene Schwachstelle in euren CI/CD-Pipelines: Die Registry

Die vergessene Schwachstelle in euren CI/CD-Pipelines: Die Registry Jeder redet über Build-Pipelines, Deployment-Automatisierung, GitOps, Blue/Green-Rollouts, Canary Releases. Alles sauber …

Lesen →

Die vergessene Schwachstelle in euren CI/CD-Pipelines: Die Registry
Katrin Peter · 03.06.2025 · ⏳ 2 Minuten

Application Performance sollte messbar sein — jederzeit, in Echtzeit

Wer Anwendungen produktiv betreibt, braucht keine schönen Dashboards, sondern harte Daten. Performance-Probleme entstehen nie dann, wenn Zeit für Debugging ist. Sie kommen genau dann, wenn Systeme …

Lesen →

Application Performance sollte messbar sein — jederzeit, in Echtzeit

Interessiert an weiteren Inhalten? Hier gehts zu allen Blogs →


Noch Fragen? Melden Sie sich!

Unsere DevOps-Experten antworten in der Regel innerhalb einer Stunde.

Zu Gen-Z für E-Mail? Einfach mal Discord versuchen. Unter +49 800 000 3706 können Sie unter Angabe Ihrer Kontaktdaten auch einen Rückruf vereinbaren. Bitte beachten Sie, dass es keine Möglichkeit gibt, uns telefonisch direkt zu erreichen. Bitte gar nicht erst versuchen. Sollten Sie dennoch Interesse an synchroner Verfügbarkeit via Telefon haben, empfehlen wir Ihnen unseren Priority Support.