Förenklad automatisk skalning av program med Kubernetes-tillägg för händelsedriven autoskalning (KEDA) i Azure Kubernetes Service (AKS)

Viktigt!

KEDA-tillägget för AKS stöder för närvarande inte ändring av CPU-begäranden eller -gränser och andra Helm-värden för måttservern eller operatorn. Tänk på den här begränsningen när du använder tillägget. Om du har några frågor kan du kontakta dig här.

Kubernetes Händelsedriven autoskalning (KEDA) är en enkel och lätt komponent som gör automatisk skalning av program enkel. Det är ett Graduate-projekt inom Cloud Native Computing Foundation (CNCF). KEDA använder händelsedriven autoskalning för att skala ditt program för att möta efterfrågan på ett hållbart och kostnadseffektivt sätt med skalning till noll.

För de flesta produktionsarbetsbelastningar är AKS Automatic den rekommenderade STANDARD-AKS-upplevelsen. AKS Automatic är produktionsklart som standard och innehåller KEDA som är förkonfigurerat i klustret. Om du använder AKS Standard kan du aktivera KEDA med hjälp av det hanterade KEDA-tillägget.

Mer information om AKS Automatic finns i Vad är Azure Kubernetes Service (AKS) Automatisk?

Kommentar

KEDA version 2.15+ inför en omfattande förändring som tar bort stöd för poddidentitet. Vi rekommenderar att du övergår till workload identity för autentisering om du använder pod identity. Även om det HANTERADE KEDA-tillägget för närvarande inte kör KEDA version 2.15+, börjar det hanterade tillägget köra KEDA 2.15+ i AKS förhandsversion 1.32.

Mer information om hur du på ett säkert sätt skalar dina program med arbetsbelastningsidentitet finns i vår självstudie. För att se KEDA:s policy för ändringar som inte är bakåtkompatibla/utfasning, läs deras officiella dokumentation.

KEDA i AKS Automatic och AKS Standard

KEDA är tillgängligt i båda AKS-klusterlägena, men installationssökvägen är annorlunda:

  • AKS Automatic: KEDA är förkonfigurerat och redo att användas.
  • AKS Standard: Aktivera KEDA genom att aktivera det AKS-hanterade tillägget.

I de flesta produktionsscenarier börjar du med AKS Automatic för att använda produktionsklara standardvärden och minska kostnaderna för klusterhantering.

Arkitektur

KEDA innehåller två huvudkomponenter:

  • MED KEDA-operatorn kan slutanvändarna skala in eller ut arbetsbelastningar från 0 till N-instanser med stöd för Kubernetes-distributioner, StatefulSetsjobb eller alla anpassade resurser som definierar /scale underresurser.
  • Måttservern exponerar externa mått för HPA (Horizontal Pod Autoscaler) i Kubernetes för automatisk skalning, till exempel meddelanden i ett Kafka-ämne eller antal händelser i en Azure-händelsehubb. På grund av tidigare begränsningar måste KEDA vara det enda installerade externa måttkortet.

Diagram som visar arkitekturen för KEDA och hur den utökar Kubernetes.

Läs mer om hur KEDA fungerar i den officiella KEDA-dokumentationen.

Installation och aktivering

AKS Automatisk

KEDA är förkonfigurerat i AKS Automatic. Det krävs inget separat installationssteg för KEDA-tillägg.

AKS Standard

Aktivera KEDA på AKS Standard med någon av följande metoder:

Det hanterade KEDA-tillägget ger en keda-installation som stöds fullt ut integrerad med AKS.

Funktioner och fördelar

KEDA innehåller följande funktioner:

  • Skala arbetsbelastningar till noll när efterfrågan minskar.
  • Skala programarbetsbelastningar för att möta efterfrågan med hjälp av Azure KEDA-skalare.
  • Skala program automatiskt med hjälp av ScaledObjects, till exempel driftsättningar, StatefulSetseller valfri anpassad resurs som definierar underresursen /scale.
  • Autoskalning av jobbliknande arbetsbelastningar med hjälp ScaledJobsav .
  • Använd säkerhet i produktionsklass genom att koppla bort autentisering med automatisk skalning från arbetsbelastningar.
  • Använd en egen extern skalare för anpassad logik för automatisk skalning.
  • Integrera med Microsoft Entra Workload ID för autentisering.

I AKS Automatic får du dessa händelsedrivna autoskalningsfunktioner som standard eftersom klustret är förkonfigurerat med KEDA.

Kommentar

Om du planerar att använda arbetsbelastningsidentitet på AKS Standard aktiverar du arbetsbelastningsidentiteten innan du aktiverar KEDA-tillägget.

Produktionsvägledning

Använd den här vägledningen för att välja klusterläge:

  • Välj AKS Automatisk när du vill ha en produktionsklar standardupplevelse med KEDA förkonfigurerad.
  • Välj AKS Standard när du behöver djupare anpassning på klusternivå och explicit tilläggshantering.
  • Använd KEDA i båda lägena för händelsedrivna arbetsbelastningar för automatisk skalning.

Tilläggsbegränsningar

KEDA AKS-tillägget har följande begränsningar:

  • KEDA:s HTTP-tillägg (förhandsversion) för att skala HTTP-arbetsbelastningar installeras inte med tillägget, men kan distribueras separat.
  • KEDA:s externa skalare för Azure Cosmos DB för skalning baserat på Azure Cosmos DB-ändringsflödet installeras inte med tillägget, men kan distribueras separat.
  • Endast en extern måttserver tillåts i Kubernetes-klustret. På grund av detta bör KEDA-tillägget vara den enda externa måttservern i klustret.
    • Flera KEDA-installationer stöds inte
  • Vi rekommenderar inte att kombinera KEDA ScaledObject med en HPA (Horizontal Pod Autoscaler) för att skala samma arbetsbelastning. De konkurrerar med varandra eftersom KEDA använder Horizontal Pod Autoscaler (HPA) i bakgrunden och resulterar i udda skalningsbeteende.
    • Om en HPA skapas först, sedan skapas en KEDA ScaledObject och KEDA ScaledObject misslyckas med att skapas.
    • Om en KEDA ScaledObject skapas först och sedan en HPA skapas, blockeras inte skapandet av HPA.

För allmänna KEDA-frågor rekommenderar vi att du besöker översikten över vanliga frågor och svar.

Kommentar

Om du använder Microsoft Entra-arbetsbelastnings-ID och aktiverar KEDA före arbetsbelastnings-ID måste du starta om KEDA-operatorpoddarna så att rätt miljövariabler kan matas in:

  1. Starta om poddarna genom att köra kubectl rollout restart deployment keda-operator -n kube-system.

  2. Hämta KEDA-operatorpoddar med hjälp av kubectl get pod -n kube-system och hitta poddar som börjar med keda-operator.

  3. Kontrollera att miljövariablerna har injicerats genom att köra kubectl describe pod <keda-operator-pod> -n kube-system. Under Environmentbör du se värden för AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILEoch AZURE_AUTHORITY_HOST.

Kubernetes- och KEDA-versioner som stöds

Vilken version av Kubernetes-klustret du har avgör vilken version av KEDA som installeras på ditt AKS-kluster. Information om vilken KEDA-version som mappas till varje AKS-version finns i kolumnen AKS-hanterade tillägg i kubernetes-komponentversionstabellen.

För GA Kubernetes-versioner erbjuder AKS fullt stöd för motsvarande KEDA-delversion i tabellen. Förhandsversioner av Kubernetes och den senaste KEDA-korrigeringen omfattas delvis av kundsupport på bästa sätt. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar: