Erfahren Sie mehr über die verwaltete Kueue-Erweiterung auf Azure Kubernetes Service (AKS)

Kueue bietet eine Kubernetes-native Auftragswarteschlange und Ressourcensteuerung für Batch- und KI-Workloads. Es entscheidet, wann eine Workload basierend auf verfügbaren Warteschlangenkontingenten und konfigurierten Richtlinien gestartet werden kann. Nach der Zulassung platziert der Kubernetes-Planer die Pods der Workload auf Knoten.

Bevorzugen Sie auf Azure Kubernetes Service (AKS) die verwaltete Kueue-Erweiterung (Vorschau), um den unterstützten Kueue-Controller zu installieren und zu verwalten und verwaltete Ressourcen für Ihren Cluster zu generieren. Siehe Installieren der verwalteten Kueue-Erweiterung auf AKS.

In diesem Artikel werden die grundlegenden Konzepte von Kueue und der verwalteten Kueue-Erweiterung erläutert.

Important

Open-Source-Software wird überall in AKS-Dokumenten und -Beispielen erwähnt. Software, die Sie bereitstellen, ist von AKS-Vereinbarungen zum Servicelevel, der eingeschränkten Garantie und dem Azure-Support ausgeschlossen. Wenn Sie Open-Source-Technologie zusammen mit AKS nutzen, nutzen Sie die Supportoptionen, die von den jeweiligen Communitys und Projektbetreuenden angeboten werden, um einen Plan zu entwickeln.

Microsoft übernimmt die Verantwortung für die Erstellung der Open-Source-Pakete, die wir auf AKS bereitstellen. Diese Verantwortung beinhaltet die vollständige Übernahme des Build-, Scan-, Signier-, Validierungs- und Hotfix-Prozesses sowie die Kontrolle über die Binärdateien in Container-Images. Weitere Informationen finden Sie unter Sicherheitsrisikomanagement für AKS und AKS-Supportabdeckung.

Wann Sie Kueue verwenden

Verwenden Sie Kueue für Arbeitslasten, die vor der Ausführung auf ausreichende Kontingente und Ressourcen warten können, z. B.:

  • Schulung für KI und Machine Learning.
  • GPU-intensive Batchaufträge.
  • Datenverarbeitung und -analyse.
  • Hyperparameteroptimierung und Batchinferenz.
  • Mediencodierung und andere endliche Verarbeitungsaufträge.

Kueue integriert sich in Kubernetes Jobs und unterstützten Workload-APIs wie RayJob. Die von der verwalteten Erweiterung unterstützten Integrationen werden im Handbuch zur verwalteten Installation aufgeführt.

Die Kueue-Zulassung entspricht nicht dem Pod-Scheduling oder der Azure-Kapazitätszuweisung. Das verfügbare Warteschlangenkontingent garantiert nicht, dass ein Pod sofort eingeplant werden kann. Informationen zur Kapazitätsbereitstellung vor der Zulassung finden Sie unter Verwenden von verwaltetem Kueue mit der Cluster-Autoskalierung.

Grundlegende Konzepte von Kueue verstehen

Die folgenden Ressourcen verbinden eine eingereichte Workload mit einer Kontingent- und Zulassungsrichtlinie:

Resource Purpose
ResourceFlavor Beschreibt die Knotenmerkmale, die beim Zuweisen von Ressourcen zu Arbeitslasten verwendet werden. Die verwaltete Erweiterung generiert Varianten für geeignete Benutzerknoten.
ClusterQueue Definiert clusterweite Ressourcenkontingente, Flavor-Referenzen und Richtlinien wie Warteschlangen und Präemption.
LocalQueue Stellt einen namensraumbezogenen Einreichungspunkt bereit, der auf ein ClusterQueue verweist. LocalQueue wird in der Regel nach einem Team, einer Geschäftseinheit, einem Benutzer oder einem Projekt benannt.
Workload Erfasst die Ressourcenanforderungen, die Kontingentreservierung sowie den Zulassungsstatus einer Workload. Dieses Objekt wird von unterstützten Workload-Integrationen erstellt.
WorkloadPriorityClass Weist Workloads eine Priorität für die Reihenfolge der Zulassung und die geltenden Präemptionsrichtlinien zu. Die verwaltete Erweiterung stellt Standardklassen bereit.

Der Ablauf der Zulassung ist:

Job oder eine andere unterstützte Workload → LocalQueue → ClusterQueue → Zulassungsprüfungen und Kontingentreservierung → Workload-Zulassung → Pod-Planung

Die Bezeichnung einer Workload kueue.x-k8s.io/queue-name identifiziert ein LocalQueue-Objekt im Namespace. Die LocalQueue leitet die Workload an ihre ClusterQueue weiter. Wenn das erforderliche Kontingent oder eine Zulassungsprüfung noch nicht verfügbar ist, wartet die Workload, anstatt die zugehörigen Pods zu starten.

Ein ClusterQueue-Kontingent ist eine Zulassungsrichtlinie, keine Knotenpoolgröße oder ein Azure Abonnementkontingent. Warteschlangenbesitzer konfigurieren Kontingente gemäß ihrer Kapazitäts- und Freigaberichtlinie.

Verstehen von verwalteten Ressourcen und Prioritäten für die verwaltete Kueue-Erweiterung von AKS

Die verwaltete Erweiterung generiert Ressourcen wie etwa den aks-cpu-ResourceFlavor für geeignete CPU-Benutzerknoten und stellt aks-low-priority, aks-medium-priority und aks-high-priority Workload-Prioritätsklassen bereit. GPU-Variantenamen hängen von der erkannten GPU-Hardware ab. Überprüfen Sie die für Ihren Cluster generierten Ressourcen, anstatt von einem Namen auszugehen.

Referenzieren Sie verwaltete Ressourcen aus Ihren Warteschlangen und Workloads. Erstellen Sie sie nicht mit reservierten AKS-Namen neu, oder ändern Sie ihre Schutzmarkierungen. Sie besitzen weiterhin Ihre ClusterQueues, LocalQueues, Workloadanforderungen und Kontingentrichtlinien.

Priorität wirkt sich auf die Reihenfolge der Zulassung aus. Dies ermöglicht Präemption nur, wenn die Präemptionsrichtlinie der ClusterQueue dies zulässt. Eine höhere Priorität allein berechtigt einen Workload nicht dazu, einen anderen Workload zu verdrängen. Sehen Sie sich das Beispiel "Job mit niedriger und hoher Priorität" an.

Kueue-Features in der verwalteten Erweiterung

Die verwaltete Vorschau bietet die folgende Featurekonfiguration:

Funktion Verwaltete Konfiguration
Topologiebezogene Planung (TopologyAwareScheduling) Standardmäßig aktiviert. Konfigurieren Sie Ihre Warteschlangen und Workloads so, dass die topologiebezogene Platzierung verwendet wird, sofern diese unterstützt wird.
LocalQueue-Metriken (LocalQueueMetrics) Standardmäßig aktiviert. Kueue macht Metriken zu LocalQueue-Aktivitäten und -Zulassung verfügbar.
ClusterQueue-Ressourcenmetriken Aktiviert. Kueue stellt pro ClusterQueue Metriken zu Kontingenten und Ressourcennutzung bereit.
Workloadintegrationen Kubernetes Job, Pod, Deployment, StatefulSet, JobSet, RayJob, RayService, RayCluster, MPIJob und Trainer v2 TrainJob sind aktiviert. Ältere Kubeflow Trainer v1-Aufträge, AppWrapper und LeaderWorkerSet sind nicht aktiviert.
MultiKueue Standardmäßig deaktiviert. Die Azure-Dienste verwalten ihre Konfiguration für unterstützte Multiclusterszenarien.

Durch das Verfügbarmachen von Metriken wird ihre Sammlung oder ihre Speicherung nicht konfiguriert. Konfigurieren Sie die Überwachung separat.

Featuregates, Controllerkonfiguration und Workloadintegrationen werden als Teil des Release der Erweiterung verwaltet. Sie können sie nicht über vom Kunden bereitgestellte Erweiterungskonfigurationseinstellungen oder Helmwerte außer Kraft setzen. Sie können weiterhin Ihre eigenen ClusterQueues, LocalQueues, Kontingente und Workloadrichtlinien über die Kueue-APIs konfigurieren.

Responsibilities

Plattformadministratoren:

  • Bereitstellen und Verwalten von AKS-Knotenpools.
  • Installieren Sie die verwaltete Erweiterung, und überprüfen Sie die Controllerintegrität.
  • Konfigurieren ClusterQueues, Kontingente, Freigaberichtlinien und Präemptionsrichtlinien.
  • Stellen LocalQueues bereit, und überwachen Sie die Zulassungs- und Clusterkapazität.

Workloadbesitzer:

  • Übermitteln Sie unterstützte Workloads an eine LocalQueue.
  • Wählen Sie eine geeignete Workloadprioritätsklasse aus.
  • Legen Sie Ressourcenanforderungen und alle erforderlichen Platzierungseinschränkungen fest.
  • Überwachen die Workload-Zulassung, die Pod-Planung und die Ergebnisse der Anwendung.

Installationsmethode auswählen

Verwenden Sie die verwaltete Erweiterung, um die unterstützte Kueue-Version und Controllerkonfiguration über Azure zu verwalten. AKS generiert auch verwaltete ResourceFlavors und stellt Standardmäßige Workloadprioritätsklassen bereit. Befolgen Sie Installieren der verwalteten Kueue-Erweiterung auf AKS.

Zu Cluster- und Clientanforderungen siehe die Voraussetzungen für verwaltete Erweiterungen.

Informationen zu Lebenszyklusvorgängen finden Sie unter Deinstallieren Sie die verwaltete Kueue-Erweiterung. Beim Deinstallieren werden benutzerdefinierte Kueue-Ressourcen und Warteschlangenkonfiguration gelöscht. Es handelt sich nicht um einen Workaround für den Zustand des Controllers.

Wenn Sie Ihre eigene Kueue-Version oder Controllerkonfiguration auswählen und verwalten müssen, können Sie das Open-Source-Projekt auch über Helm installieren. Verwenden Sie die Anweisungen für die Upstream-Installation von Kueue für diesen Pfad, anstatt Upstreaminstallationsbefehle auf eine verwaltete Erweiterung anzuwenden.

Verwalten Sie die Konfiguration und den Lebenszyklus einer selbst gehosteten Installation separat. Führen Sie keinen selbst gehosteten Kueue-Controller zusammen mit der verwalteten Erweiterung auf demselben Cluster aus.

Nächste Schritte