Instalace a konfigurace Kueue ve službě Azure Kubernetes Service (AKS)

Kueue poskytuje nativní frontu úloh Kubernetes a správu přístupu prostředků pro dávkové úlohy a úlohy AI spuštěné na Azure Kubernetes Service (AKS). Tento článek popisuje dva způsoby instalace Kueue v AKS:

  • Rozšíření Kueue spravované službou AKS (Preview): Použijte prostředí rozšíření spravované Azure k nasazení Kueue ve vašem clusteru AKS.
  • Open-source Kueue s Helm: Nainstalujte a nakonfigurujte Kueue přímo z upstreamového Helm chartu Kueue.

Po instalaci můžete pomocí rozhraní API Kueue, jako jsou ClusterQueue, LocalQueue a ResourceFlavor, řídit, jak jsou úlohy přijímány k prostředkům clusteru.

Co je Kueue?

Kueue je opensourcový projekt fronty úloh nativní pro Kubernetes navržený ke správě dávkových úloh a zajištění efektivního, spravedlivého a plánování řízeného zásadami v clusterech Kubernetes. Kueue se integruje s ekosystémem plánování Kubernetes, aby koordinovalo přidělování prostředků, stanovení priorit a řízení kapacity pro úlohy. Kueue řídí, jestli jsou workloady připuštěny na základě nakonfigurovaných kvót prostředků a zásad. Po přijetí úlohy plánovač Kubernetes umístí pody úlohy na uzly.

Kueue je užitečný pro úlohy, jako jsou:

  • Trénování umělé inteligence a strojového učení
  • Úlohy náročné na GPU
  • Zpracování dat
  • Skenování zranitelností zabezpečení
  • Kódování médií a překódování videa
  • Generování sestav a finanční analýza
  • Další dávkové úlohy, které můžou čekat, až budou k dispozici dostatečné prostředky

Modelujte tyto úlohy pomocí úlohy Kubernetes, CronJob nebo vlastní definice prostředků (CRD), jako je RayJob nebo Kubeflow MPIJob, a přijímejte je podle jejich ClusterQueue a LocalQueue

Jak porozumět frontám Kueue

Před odesláním úloh pomocí Kueue nakonfigurujte fronty, které řídí přijímání úloh.

Kueue používá dva primární prostředky fronty:

  • ClusterQueue definuje kvóty prostředků na úrovni clusteru pro sdílené fondy prostředků (například procesor, paměť, kvóty GPU) a zásady, které určují, které úlohy je možné připustit.
  • LocalQueue poskytuje frontu v rámci oboru názvů, ve které uživatelé odesílají úlohy a odkazují na ClusterQueue.

Následující tok ukazuje, jak Kueue vyhodnotí úlohu předtím, než Kubernetes naplánuje své pody: Úloha (pod, úloha atd.) → LocalQueue → ClusterQueue → přijetí úlohy → plánování Kubernetes.

A LocalQueue identifikuje ClusterQueue, která by měla vyhodnotit pracovní zátěž. ClusterQueue určuje, zda je pro přijetí úlohy k dispozici dostatečná kvóta. Správci platformy obvykle konfigurují prostředky a zásady na úrovni clusteru, zatímco vlastníci úloh odesílají úlohy prostřednictvím nástroje LocalQueue.

Poznámka:

Pokud chcete odeslat úlohu do Kueue, přidejte k úloze popisek kueue.x-k8s.io/queue-name: <local-queue-name>. Tento štítek přidruží úlohu k LocalQueue, která ji směruje do příslušné ClusterQueue k přijetí.

Důležité

Opensourcový software je zmíněn v dokumentaci a ukázkách AKS. Software, který nasadíte, je vyloučený ze smluv o úrovni služeb AKS, omezené záruky a podpora Azure. Při používání opensourcových technologií společně s AKS se obraťte na možnosti podpory, které jsou k dispozici v příslušných komunitách a správci projektů, a vytvořte plán.

Microsoft zodpovídá za vytváření opensourcových balíčků, které nasazujeme v AKS. Tato odpovědnost zahrnuje plnou správu procesu sestavení, skenování, podepisování, validace a hotfixů, spolu s kontrolou nad binárními soubory v kontejnerových obrazech. Další informace najdete v tématu Řízení zranitelností pro AKS a Podpora pro AKS a rozsah pokrytí.

Kdy použít Kueue

Úlohy Batch a AI můžou mít požadavky na plánování a správu prostředků, které se liší od dlouhotrvajících služeb Kubernetes. Správci dávkových úloh (včetně správců platforem nebo clusterů a techniků DevOps) a dávkové uživatele (datoví vědci, vývojáři a technici ML) můžou těžit z nasazování úloh pomocí Kueue v AKS.

Správce služby Batch se zaměřuje na konfiguraci, správu a zabezpečení infrastruktury na úrovni platformy pro podporu dávkových úloh a má následující zodpovědnosti:

  • Provozování a správa uzlových skupin AKS
  • Definujte kvóty prostředků, clusterové fronty a zásady pro izolaci úloh.
  • Vylaďte automatické škálování a nákladovou efektivitu (například automatické škálování clusteru nebo kvóty Kueue).
  • Monitorujte stav klastru a fronty.
  • Vytváření a údržba šablon a opakovaně použitelných pracovních postupů

Uživatel dávky spouští výpočetní úlohy náročné na výpočetní výkon nebo paralelní úlohy pomocí infrastruktury na úrovni platformy nakonfigurované správcem dávky a obvykle:

  • Odesílání dávkových úloh (jako je Job, úloha, nebo vlastní řadič CRD) a monitorování stavu úloh a výstupů
  • Výběr správné fronty nebo typu prostředků pro úlohy na základě pokynů od správců batch.
  • Optimalizace specifikací úloh pro potřeby prostředků a výkonu

Požadavky

Další požadavky závisí na zvolené metodě instalace.

Volba způsobu instalace Kueue

AKS podporuje dva přístupy k instalaci pro Kueue. Zvolte možnost, která nejlépe odpovídá způsobu instalace a konfigurace Kueue ve vašem clusteru. Koncepty rozhraní API a front Kueue Kubernetes zůstávají stejné bez ohledu na metodu instalace. Hlavním rozdílem je způsob instalace a konfigurace komponent Kueue.

Instalační cesta Description
Spravované rozšíření AKS Kueue (Preview) Kueue chcete nasadit prostřednictvím prostředí rozšíření clusteru AKS a použít verzi a konfiguraci Kueue podporovanou rozšířením.
Open source Kueue pomocí Helm Chcete nainstalovat Kueue přímo z upstream projektu a řídit verzi Kueue, feature gates, integrace a konfiguraci Helmu.

Instalace a konfigurace spravovaného rozšíření Kueue na Azure Kubernetes Service (Preview)

Rozšíření Kueue spravované službou AKS poskytuje nativní cestu instalace v Azure pro nasazení Kueue v clusteru AKS. Tuto metodu instalace použijte, pokud chcete nasadit Kueue prostřednictvím prostředí rozšíření clusteru AKS místo přímé instalace upstreamového chartu Helm.

Požadavky na spravované rozšíření

Než začnete, ujistěte se, že máte následující nástroje:

  • AKS verze 1.34 nebo novější
  • Azure CLI verze 2.56 nebo novější
  • kubectl version 1.33–1.35
  • Azure CLI k8s-extension verze 1.9.3 nebo novější

Limitations

  • Spravované rozšíření AKS Kueue aktuálně podporuje pouze Cluster Autoscaler, přičemž podpora automatického zřizování uzlů je plánována.
  • AKS Automatic zatím není podporováno. Podpora je plánována pro budoucí vydání.
  • Nejprve musíte odebrat existující instalace OSS Kueue. Managed Kueue je jediná instance v clusteru a instalace odmítne nespravovaný kontroler Kueue, a to i v jiném oboru názvů.
  • Podporované integrace úloh: Kubernetes Job, Pod, Deployment, StatefulSet, JobSet, Ray, MPIJob a Trainer v2 TrainJob.
  • Nepodporované integrace úloh: Starší úlohy Kubeflow v1, AppWrapper a LeaderWorkerSet.

Nainstalujte spravované rozšíření Kueue

Nastavte proměnné prostředí pro vaše předplatné Azure, skupinu prostředků a cluster AKS:

RESOURCE_GROUP="<resource-group-name>"
CLUSTER_NAME="<aks-cluster-name>"

Nainstalujte rozšíření clusteru Kueue:

az k8s-extension create \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--cluster-type managedClusters \
--name aks-kueue \
--extension-type microsoft.kueue \
--release-train preview

Ověřte instalaci rozšíření

Získejte stav zřizování a nainstalovanou verzi rozšíření Kueue. Ověřte, že provisioningState je Succeeded a extensionState je Available. Pak pokračujte na Potvrdit stav nasazení.

az k8s-extension show \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--cluster-type managedClusters \
--name kueue \
--output json

Odinstalujte spravované rozšíření Kueue

Odinstalace spravovaného Kueue odstraní všechny vlastní zdroje Kueue v clusteru, včetně LocalQueues vytvořených zákazníkem, ClusterQueues, ResourceFlavors a dalších konfigurací Kueue. Také vymaže finalizátory, které blokují odstranění. Před odinstalací ponechte konfiguraci vlastněnou zákazníkem v Gitu nebo ji před odinstalací exportujte. Znovu jej použijte po přeinstalaci Kueue a před připuštěním úloh zařazených do fronty. Pokud používáte GitOps, pozastavte reconciliaci před odinstalací a po přeinstalaci Kueue ji znovu spusťte.

Úlohy Kubernetes spravované pomocí Kueue a jejich pody se neodstraní:

  • Spuštěné úlohy a pody pokračují bez správy Kueue.
  • Úlohy zařazené do fronty zůstanou pozastavené a nevytvoří pody.
  • Po přeinstalaci Kueue vytvoří nové workloady pro přeživší úlohy Job, které mají stále popisek fronty.

Pokud chcete odebrat spravované Kueue bez odstranění clusteru AKS, odstraňte rozšíření:

az k8s-extension delete \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--cluster-type managedClusters \
--name kueue \
--yes

Nainstalujte Kueue pomocí Helm

Požadavky Helm

Než začnete, ujistěte se, že máte následující nástroje:

  • Helm v3.0.0 nebo novější
  • Oprávnění k vytváření a odstraňování: skupiny prostředků, clustery AKS, fondy uzlů AKS a rozšíření clusteru

Konfigurace volitelných funkcí Kueue

I když většina funkcí a zásad plánování, které byste mohli vyžadovat, jsou ve výchozím nastavení povolené, některé se nelíbí TopologyAwareScheduling. V případě potřeby překonfigurujte instalaci Kueue změnou výchozích Feature Gates nebo konfigurací hodnot parametrů Kueue v values.yaml souboru Helm chartu.

Kueue podporuje více pracovních frameworků, které je nutné explicitně povolit, abyste mohli využívat možnosti plánování a správy zdrojů Kueue při spuštění MPI Operator MPIJobs, KubeRay'sRayJob a dalších.

Následující příklad umožňuje:

  • LocalQueueMetrics poskytuje podrobné metriky Prometheus specifické pro stav a aktivitu místních front, které umožňují detailní sledování přidělování úloh, rezervace kvót a využití prostředků.
  • TopologyAwareScheduling umožňuje plánování podů na základě topologie uzlů ve fondu nebo clusteru, aby se zlepšila dostupná šířka pásma mezi pody.
  • Integrace pro frameworky pro dávkové a AI úlohy, včetně Kubeflow, Ray a JobSet.
  1. Vytvořte a uložte values.yaml soubor pro volitelné přizpůsobení konfigurace Kueue.

    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
    

Poznámka:

Aktualizace verze podle potřeby: kueue/release

  1. Pomocí příkazu nainstalujte nejnovější verzi kontroleru Kueue a CRD ve vyhrazeném oboru názvů 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.yaml
    
  2. Pomocí příkazu helm list ověřte stav nasazení.

    helm list --namespace kueue-system
    

    Váš výstup by měl obsahovat Status z deployed a vypadat takto:

    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
    

Odinstalovat Kueue

Pokud už nepotřebujete controller manager Kueue nebo vlastní zdroje Kueue v clusteru AKS, odinstalujte úložiště Helm a odeberte vyhrazený obor názvů a prostředky.

  1. Pomocí příkazu helm uninstall odeberte repozitář Helm Kueue.

    helm uninstall kueue --namespace kueue-system  
    
  2. Pomocí příkazu kubectl delete odeberte vyhrazený obor názvů a prostředky.

    kubectl delete namespace kueue-system  
    

Potvrzení stavu nasazení

Bez ohledu na to, jakou metodu instalace používáte, před konfigurací front nebo odesláním úloh ověřte, že jsou spuštěné komponenty Kueue.

  1. Ověřte, že jsou pody kontroleru správně spuštěné.

    kubectl get deploy -n kueue-system
    

    Vaše výstupy by měly vypadat podobně jako následující příklad:

    NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
    kueue-controller-manager       1/1     1            1           7s
    

Pro rozšíření AKS managed Kueue by měl výstup obsahovat obojí kueue-controller-manager i kueue-extension. Ověřte, že se obě nasazení zobrazují READY i AVAILABLE jako 1.

  1. Potvrďte instalaci prostředků Kueue v clusteru AKS:

    kubectl get crds | grep kueue
    

    Váš výstup by měl obsahovat následující CRD Kueue:

    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
    

Přesná sada objektů CRD se může lišit v závislosti na nainstalované verzi Kueue.

Po spuštění Kueue nakonfigurujte fronty, kvóty prostředků a zásady přijímání úloh před odesláním úloh.

Další kroky