Förenklad automatisk skalning av program med Kubernetes-tillägg för händelsedriven autoskalning (KEDA)
Kubernetes Händelsedriven autoskalning (KEDA) är en enkel och lätt komponent som strävar efter att göra automatisk skalning av program enkelt och är ett CNCF Graduate-projekt.
Den tillämpar 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.
KEDA-tillägget gör det ännu enklare genom att distribuera en hanterad KEDA-installation, vilket ger dig en omfattande katalog med Azure KEDA-skalare som du kan skala dina program med i ditt AkS-kluster (Azure Kubernetes Services).
Kommentar
KEDA version 2.15 introducerar en icke-bakåtkompatibel ändring som tar bort poddidentitetsstöd. Vi rekommenderar att du flyttar över till arbetsbelastningsidentiteten för din autentisering om du använder poddidentitet. Även om det keda-hanterade tillägget för närvarande inte kör KEDA version 2.15, börjar det köra det i AKS-förhandsversionen 1.31.
Mer information om hur du på ett säkert sätt skalar dina program med arbetsbelastningsidentitet finns i vår självstudie. Om du vill se KEDA:s policy för icke-bakåtkompatibla ändringar/utfasning läser du deras officiella dokumentation.
Arkitektur
KEDA innehåller två huvudkomponenter:
- MED KEDA-operatorn kan slutanvändarna skala in/ut arbetsbelastningar från 0 till N-instanser med stöd för Kubernetes-distributioner, Jobb, StatefulSets 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.
Läs mer om hur KEDA fungerar i den officiella KEDA-dokumentationen.
Installation
KEDA kan läggas till i ditt AkS-kluster (Azure Kubernetes Service) genom att aktivera KEDA-tillägget med hjälp av en ARM-mall eller Azure CLI.
KEDA-tillägget ger en fullständigt stödd installation av KEDA som är integrerad med AKS.
Funktioner och fördelar
KEDA innehåller följande funktioner:
- Skapa hållbara och kostnadseffektiva program med skalning till noll
- Skala programarbetsbelastningar för att möta efterfrågan med hjälp av en omfattande katalog med Azure KEDA-skalare
- Autoskalning av program med
ScaledObjects
, till exempel Distributioner, StatefulSets eller en anpassad resurs som definierar/scale
underresurs - Autoskalning av jobbliknande arbetsbelastningar med
ScaledJobs
- Använda säkerhet i produktionsklass genom att koppla bort autentisering med automatisk skalning från arbetsbelastningar
- Ta med din egen externa skalning för att använda skräddarsydda autoskalningsbeslut
- Integrera med Microsoft Entra-arbetsbelastnings-ID för autentisering
Kommentar
Om du planerar att använda arbetsbelastningsidentitet aktiverar du tillägget för arbetsbelastningsidentitet innan du aktiverar KEDA-tillägget.
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
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:
Starta om poddarna genom att köra
kubectl rollout restart deployment keda-operator -n kube-system
.Hämta KEDA-operatorpoddar med hjälp av
kubectl get pod -n kube-system
och hitta poddar som börjar medkeda-operator
.Kontrollera att miljövariablerna har injicerats genom att köra
kubectl describe pod <keda-operator-pod> -n kube-system
. UnderEnvironment
bör du se värden förAZURE_TENANT_ID
,AZURE_FEDERATED_TOKEN_FILE
ochAZURE_AUTHORITY_HOST
.
Kubernetes- och KEDA-versioner som stöds
Kubernetes-klustret avgör vilken KEDA-version som ska installeras i AKS-klustret. 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:
Nästa steg
Azure Kubernetes Service