Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kueue bietet Kubernetes-native Auftragswarteschlangen und Ressourcenzulassung für Batch- und KI-Workloads, die auf Azure Kubernetes Service (AKS) ausgeführt werden. In diesem Artikel werden zwei Möglichkeiten zum Installieren von Kueue auf AKS beschrieben:
- Von AKS verwaltete Kueue-Erweiterung (Vorschau): Verwenden Sie die Azure verwaltete Erweiterungsoberfläche, um Kueue auf Ihrem AKS-Cluster bereitzustellen.
- Open-Source Kueue mit Helm: Installieren und konfigurieren Sie Kueue direkt aus dem offiziellen Kueue Helm-Chart.
Verwenden Sie nach der Installation Kueue-APIs wie ClusterQueue, LocalQueue und ResourceFlavor, um zu steuern, wie Workloads zu Clusterressourcen zugelassen werden.
Was ist Kueue?
Kueue ist ein open-source Kubernetes-natives Auftragswarteschlangenprojekt, das zum Verwalten von Batchworkloads entwickelt wurde und eine effiziente, faire und richtliniengesteuerte Planung in Kubernetes-Clustern gewährleistet. Kueue ist in das Kubernetes-Planungsökosystem integriert, um die Ressourcenzuordnung, Priorisierung und Kapazitätssteuerung für Workloads zu koordinieren. Kueue steuert, ob Workloads basierend auf konfigurierten Ressourcenkontingenten und Richtlinien zugelassen werden. Nachdem eine Workload zugelassen wurde, platziert der Kubernetes-Scheduler die Pods der Workload auf Knoten.
Kueue ist nützlich für Workloads wie:
- KI und maschinelles Lernen: Training
- GPU-intensive Aufgaben
- Datenverarbeitung
- Sicherheitslücken-Scans
- Mediencodierung und Videotranscodierung
- Berichterstellung und Finanzanalyse
- Andere Batcharbeitslasten, die warten können, bis genügend Ressourcen verfügbar sind
Modellieren Sie diese Workloads mithilfe eines Kubernetes-Jobs, eines CronJobs oder einer benutzerdefinierten Ressourcendefinition (CRD) wie RayJob oder Kubeflow MPIJob und lassen Sie sie entsprechend von ClusterQueue und LocalQueue zu
Kueue-Warteschlangen verstehen
Bevor Sie Workloads mit Kueue übermitteln, konfigurieren Sie Warteschlangen, die die Zulassung von Workloads steuern.
Kueue verwendet zwei primäre Warteschlangenressourcen:
-
ClusterQueuedefiniert clusterweite Ressourcenkontingente für freigegebene Ressourcenpools (z. B. CPU, Arbeitsspeicher, GPU-Kontingente) und Richtlinien, die bestimmen, welche Workloads zugelassen werden können. -
LocalQueuestellt eine Namespace-bezogene Warteschlange bereit, in der Benutzer Workloads übermitteln und auf eine ClusterQueue verweisen.
Der folgende Fluss zeigt, wie Kueue eine Workload auswertet, bevor Kubernetes seine Pods plant: Workload (Pod, Job usw.) → LocalQueue → ClusterQueue → Workload-Zulassung → Kubernetes-Scheduling
Eine LocalQueue identifiziert ClusterQueue, die den Workload auswerten sollte. Dies ClusterQueue bestimmt, ob für den zuzulassenden Workload ein ausreichendes Kontingent verfügbar ist. Plattformadministratoren konfigurieren in der Regel Ressourcen und Richtlinien auf Clusterebene, während Workloadbesitzer Aufträge über eine LocalQueue-Schnittstelle einreichen.
Hinweis
Ein LocalQueue ist immer erforderlich, damit Benutzer Batch-Workloads übermitteln können, und LocalQueue gibt Kueue an, zu welchem ClusterQueue der Auftrag zugewiesen werden soll. Dieses ClusterQueue bestimmt, ob ausreichende Ressourcen verfügbar sind, damit der Auftrag freigegeben und ausgeführt werden kann.
Von Bedeutung
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 in 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
Batch- und KI-Workloads können Planungs- und Ressourcenverwaltungsanforderungen aufweisen, die sich von langfristig ausgeführten Kubernetes-Diensten unterscheiden. Batchworkloadadministratoren (einschließlich Plattform- oder Clusteradministratoren und DevOps-Technikern) und Batchbenutzer (Data Scientists, Entwickler und ML-Techniker) können von der Bereitstellung von Workloads mit Kueue auf AKS profitieren.
Ein Batchadministrator konzentriert sich auf das Konfigurieren, Verwalten und Sichern der Infrastruktur auf Plattformebene zur Unterstützung von Batchworkloads und hat die folgenden Verantwortlichkeiten:
- Bereitstellen und Verwalten von AKS-Knotenpools.
- Definieren Sie Ressourcenkontingente, Cluster-Queues und Richtlinien für die Workload-Isolation.
- Optimieren Sie die automatische Skalierung und Kosteneffizienz (z. B. Cluster Autoscaler oder Kueue-Kontingente).
- Überwachen Sie den Zustand von Clustern und Warteschlangen.
- Erstellen und Verwalten von Vorlagen und wiederverwendbaren Workflows.
Ein Batchbenutzer führt rechenintensive oder parallele Aufträge mithilfe der plattformbasierten Infrastruktur aus, die von einem Batchadministrator konfiguriert wurde, und in der Regel:
- Übermitteln von Batchaufträgen (z. B. Auftrags-, Workload- oder benutzerdefinierte Controller-CRDs) und Überwachen des Auftragsstatus und der Ausgaben
- Wählen Sie geeignete Warteschlangen- oder Ressourcentypen für Aufträge aus, basierend auf den Richtlinien der Batch-Systemadministratoren.
- Optimieren von Auftragsspezifikationen für Ressourcen- und Leistungsanforderungen
Voraussetzungen
- Ein bestehender AKS-Cluster. Wenn Sie keinen Cluster haben, erstellen Sie einen mithilfe der Azure CLI, der Azure PowerShell oder im Azure-Portal.
- Azure CLI auf Ihrem lokalen Computer installiert. Informationen zum Ausführen einer Installation oder eines Upgrades finden Sie unter Installieren der Azure-Befehlszeilenschnittstelle.
- Helm Version 3 oder höher installiert.
Zusätzliche Voraussetzungen hängen von der gewählten Installationsmethode ab.
Wählen Sie, wie Kueue installiert werden soll
AKS unterstützt zwei Installationsansätze für Kueue. Wählen Sie die Option aus, die am besten dazu passt, wie Sie Kueue in Ihrem Cluster installieren und konfigurieren möchten. Die Kueue Kubernetes-APIs und Warteschlangenkonzepte bleiben unabhängig von der Installationsmethode gleich. Der Hauptunterschied besteht darin, wie die Kueue-Komponenten installiert und konfiguriert werden.
| Installationspfad | Description |
|---|---|
| Von AKS verwaltete Kueue-Erweiterung (Vorschau) | Sie möchten Kueue über die AKS-Clustererweiterung bereitstellen und die Kueue-Version und -Konfiguration verwenden, die von der Erweiterung unterstützt wird. |
| Open-Source Kueue mit Helm | Sie möchten Kueue direkt aus dem Upstream-Projekt installieren und die Kueue-Version, Featuregates, Integrationen und Helm-Konfiguration steuern. |
Installieren und Konfigurieren der verwalteten Kueue-Erweiterung auf Azure Kubernetes Service (Vorschau)
Die von AKS verwaltete Kueue-Erweiterung bietet einen Azure systemeigenen Installationspfad für die Bereitstellung von Kueue auf einem AKS-Cluster. Verwenden Sie diese Installationsmethode, wenn Sie Kueue über die AKS-Clustererweiterung bereitstellen möchten, anstatt das upstream-Helm-Chart direkt zu installieren.
Voraussetzungen für verwaltete Erweiterungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie über die folgenden Tools verfügen:
- AKS Version v1.34 oder höher
- Azure CLI Version 2.56 oder höher
- kubectl Version 1.21.0 oder höher
- Azure CLI k8s-Erweiterung Version 1.9.3
- Berechtigungen zum Erstellen und Löschen: Ressourcengruppen, AKS-Cluster, AKS-Knotenpools und Clustererweiterungen
Einschränkungen
- Die von AKS verwaltete Kueue-Erweiterung ist derzeit in den folgenden Azure Regionen verfügbar: centralus, westus, westus2 und eastus
- Die von AKS verwaltete Kueue-Erweiterung unterstützt derzeit nur Cluster Autoscaler, wobei Unterstützung für Node-Autoprovisionierung geplant ist
Installieren der verwalteten Kueue-Erweiterung
Legen Sie Umgebungsvariablen für Ihr Azure-Abonnement, die Ressourcengruppe und den AKS-Cluster fest:
SUBSCRIPTION_ID="<subscription-id>"
RESOURCE_GROUP="<resource-group-name>"
CLUSTER_NAME="<aks-cluster-name>"
Installieren Sie die Kueue-Clustererweiterung:
az k8s-extension create \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--cluster-type managedClusters \
--name kueue \
--extension-type microsoft.kueue \
--scope cluster \
--release-namespace kueue-system \
--version 0.19.6-aks.0.4.4 \
--auto-upgrade-mode none
Überprüfen der Erweiterungsinstallation
Rufen Sie den Bereitstellungsstatus und die installierte Version der Kueue-Erweiterung ab. Fahren Sie nach Abschluss der Bereitstellung der Erweiterung mit #verify-your-kueue-installation fort.
az k8s-extension show \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--cluster-type managedClusters \
--name kueue \
--output json
Deinstallieren Sie die verwaltete Kueue-Erweiterung
Wenn Sie verwaltete Kueue entfernen möchten, ohne den AKS-Cluster zu löschen, löschen Sie die Erweiterung:
az k8s-extension delete \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--cluster-type managedClusters \
--name kueue \
--yes
Kueue mit Helm installieren
Voraussetzungen für Helm
Bevor Sie beginnen, stellen Sie sicher, dass Sie über die folgenden Tools verfügen:
- Helm v3.0.0 oder höher
- Berechtigungen zum Erstellen und Löschen: Ressourcengruppen, AKS-Cluster, AKS-Knotenpools und Clustererweiterungen
Optionale Kueue-Features konfigurieren
Während die meisten Features und Terminplanungsrichtlinien, die Sie möglicherweise benötigen, standardmäßig aktiviert sind, sind einige nicht wie TopologyAwareScheduling. Konfigurieren Sie bei Bedarf Ihre Kueue-Installation neu, indem Sie die Standardfunktionsgates ändern oder die Kueue-Paramaterwerte in der values.yaml Datei des Helmdiagramms konfigurieren.
Kueue unterstützt mehrere Workload-Frameworks , die Sie explizit aktivieren müssen, um die Planungs- und Ressourcenverwaltungsfunktionen von Kueue beim Ausführen von MPI Operator MPIJobs , KubeRaysRayJob und mehr zu verwenden.
Das folgende Beispiel ermöglicht:
-
LocalQueueMetricsbietet detaillierte Prometheus-Metriken, die für den Status und die Aktivität von LocalQueues spezifisch sind, und ermöglicht eine differenzierte Überwachung der Arbeitsauslastungssteuerung, der Kontingentreservierung und der Ressourcenauslastung. -
TopologyAwareSchedulingermöglicht die Planung von Pods basierend auf der Topologie von Knoten in einem Pool oder Cluster, um die verfügbare Bandbreite zwischen den Pods zu verbessern. - Integrationen für Batch- und KI-Workload-Frameworks, einschließlich Kubeflow, Ray und JobSet.
Erstellen und speichern Sie eine
values.yamlDatei, um ihre Kueue-Konfiguration optional anzupassen.cat <<EOF > values.yaml controllerManager: featureGates: - name: TopologyAwareScheduling enabled: true - name: LocalQueueMetrics enabled: true managerConfig: controllerManagerConfigYaml: | apiVersion: config.kueue.x-k8s.io/v1beta1 kind: Configuration integrations: frameworks: - batch/job - kubeflow.org/mpijob - ray.io/rayjob - ray.io/raycluster - jobset.x-k8s.io/jobset - kubeflow.org/paddlejob - kubeflow.org/pytorchjob - kubeflow.org/tfjob - kubeflow.org/xgboostjob - kubeflow.org/jaxjob EOF
Hinweis
Aktualisieren Sie die Version nach Bedarf: kueue/releases
Installieren Sie die neueste Version des Kueue-Controllers und der CRDs in einem dedizierten Namespace mit dem Befehl
helm install.LATEST_VERSION=$(curl -s https://api.github.com/repos/kubernetes-sigs/kueue/releases/latest | grep tag_name | cut -d '"' -f 4 | sed 's/^v//') helm install kueue oci://registry.k8s.io/kueue/charts/kueue \ --version=${LATEST_VERSION} \ --create-namespace --namespace=kueue-system \ --values values.yamlBestätigen Sie den Bereitstellungsstatus mithilfe des
helm listBefehls.helm list --namespace kueue-systemIhre Ausgabe sollte eine
Statusvondeployedund wie folgt aussehen:Pulled: registry.k8s.io/kueue/charts/kueue:0.13.4 Digest: - NAME: kueue LAST DEPLOYED: - NAMESPACE: kueue-system STATUS: deployed REVISION: 1 TEST SUITE: None
Deinstallieren von Kueue
Wenn Sie den Kueue-Controller-Manager oder die benutzerdefinierten Kueue-Ressourcen in Ihrem AKS-Cluster nicht mehr benötigen, deinstallieren Sie das Helm-Repository, und entfernen Sie den dedizierten Namespace und die ressourcen.
Deinstallieren Sie das Repository Kueue Helm mithilfe des
helm uninstallBefehls.helm uninstall kueue --namespace kueue-systemEntfernen Sie den dedizierten Namespace und ressourcen mithilfe des
kubectl deleteBefehls.kubectl delete namespace kueue-system
Bestätigen des Bereitstellungsstatus
Überprüfen Sie unabhängig davon, welche Installationsmethode Sie verwenden, ob die Kueue-Komponenten ausgeführt werden, bevor Sie Warteschlangen konfigurieren oder Workloads übermitteln.
Stellen Sie sicher, dass die Controller-Pods ordnungsgemäß laufen.
kubectl get deploy -n kueue-systemIhre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:
NAME READY UP-TO-DATE AVAILABLE AGE kueue-controller-manager 1/1 1 1 7sBestätigen Sie die Installation von Kueue-Ressourcen auf Ihrem AKS-Cluster:
kubectl get crds | grep kueueIhre Ausgabe sollte die folgenden Kueue-CRDs (Custom Resource Definitions) enthalten:
admissionchecks.kueue.x-k8s.io 2025-09-11T18:20:48Z clusterqueues.kueue.x-k8s.io 2025-09-11T18:20:48Z cohorts.kueue.x-k8s.io 2025-09-11T18:20:48Z localqueues.kueue.x-k8s.io 2025-09-11T18:20:48Z multikueueclusters.kueue.x-k8s.io 2025-09-11T18:20:48Z multikueueconfigs.kueue.x-k8s.io 2025-09-11T18:20:48Z provisioningrequestconfigs.kueue.x-k8s.io 2025-09-11T18:20:48Z resourceflavors.kueue.x-k8s.io 2025-09-11T18:20:48Z topologies.kueue.x-k8s.io 2025-09-11T18:20:48Z workloadpriorityclasses.kueue.x-k8s.io 2025-09-11T18:20:48Z workloads.kueue.x-k8s.io 2025-09-11T18:20:48Z
Die genaue Gruppe von CRDs kann je nach installierter Kueue-Version variieren.
Nachdem Kueue läuft, konfigurieren Sie Warteschlangen, Ressourcenkontingente und Workloadzulassungsrichtlinien, bevor Sie Workloads übermitteln.