Skalning
Kör en app på ett fast antal instanser, skala den efter CPU-användning eller skala den på händelser med KEDA, ner till noll.
Kräver: apps/write
Öppna appen och sedan Konfiguration → Skalning, välj Skalningstyp och spara. Skalning lägger till eller tar bort instanser; den bygger inte om appen och byter inte ut instanserna som körs.
Ett fast antal instanser
Ingen (manuell) kör antalet instanser i Replikor, 1 till 20.
Skala efter CPU-användning
Mätbaserad utskalning (horisontellt) använder en horisontell poddautoskalare i Kubernetes:
- Min replikor — minst 1.
- Max replikor — högst 20, och inte under minimum.
- CPU-tröskel för utskalning — 1 till 100 %. Instanser läggs till när deras genomsnittliga CPU-användning, mätt mot CPU:n i appens beräkningsplan, ligger över tröskeln, och tas bort när den sjunker.
Skala på händelser
Händelsestyrd autoskalning (horisontellt) använder KEDA:
- Min replikor — 0 eller fler. Med 0 skalar appen till noll när ingen utlösare är aktiv, och har då ingen instans som svarar på anrop förrän en utlösare startar en. Medan den står på noll är dess status Stopped.
- Max replikor — 1 till 20, och inte under minimum.
- Utlösare — minst en. KEDA skalar när någon av dem aktiveras. Välj Utlösartyp och fyll i dess Metadata, nyckel-värde-inställningarna för den KEDA-skalaren.
Listan erbjuder RabbitMQ, Kafka, Azure Service Bus, Prometheus, Cron (time-based), Redis och PostgreSQL; Anpassad… tar vilken annan typ som helst som plattformen godtar — se KEDA-utlösare. För de erbjudna typerna kräver plattformen de här metadatanycklarna:
| Typ | Obligatorisk metadata |
|---|---|
cron |
timezone, start, end, desiredReplicas |
rabbitmq |
queueName, och host eller hostFromEnv |
kafka |
bootstrapServers eller bootstrapServersFromEnv, och consumerGroup eller consumerGroupFromEnv |
azure-servicebus |
queueName eller topicName (med subscriptionName), och connectionFromEnv |
prometheus |
serverAddress, query, threshold |
redis |
listName, och en av address, addresses, addressFromEnv, host, hosts, hostFromEnv |
postgresql |
query, targetQueryValue, och connectionFromEnv eller host |
Alla andra typer behöver minst ett metadatavärde. En utlösare har inga egna autentiseringsuppgifter:
ange anslutningsuppgifter i metadatan, direkt eller — med en nyckel som slutar på FromEnv — som
namnet på en av appens miljövariabler.
Se upp
En utlösares metadata sparas, liksom appens miljövariabler, i klartext, och alla med
apps/readpå appen kan läsa den. Appens hemligheter är inte miljövariabler, så en utlösare kan inte använda en. När en skalare behöver inloggningsuppgifter, ge den egna med inte mer åtkomst än skalningen kräver — till exempel läsbehörighet till kön — i stället för de uppgifter appen använder.
Via API:t kan även scaling.keda.pollingInterval (sekunder mellan kontrollerna, minst 1) och
scaling.keda.cooldownPeriod (sekunder efter den senaste aktiva utlösaren innan appen skalas ner
igen, 0 eller fler) anges; utan dem gäller KEDA:s standardvärden.
När autoskalningen inte fungerar
Plattformen godtar en konfiguration för autoskalning även när klustret inte kan agera på den, till exempel när det saknar en metrics-tjänst eller KEDA. Appen stannar då på sitt nuvarande antal instanser, och Översikt visar Autoskalning som Fungerar inte med orsaken under Skalningsproblem.
Bra att veta
- En app som ställdes in på över 20 instanser innan den gränsen fanns behåller sitt antal, men kan inte gå högre.
- När en app stoppas kommer den ihåg sin skalning, och när den startas återställs den — se Starta, stoppa och starta om. En skalningsändring som sparas medan appen är stoppad får effekt när den startar.
- En slot kör en instans; slots har inga skalningsinställningar.