Koncept – Skalningsalternativ för Kubernetes
Ibland räcker det inte att skala antalet poddar för att hantera ökad efterfrågan. För att anpassa sig till ändrade programkrav, till exempel mellan arbetsdagen och kvällen eller på en helg, behöver kluster ofta ett sätt att skala automatiskt.
Skalningsalternativ för Kubernetes
Kubernetes-kluster kan skalas med någon av följande komponenter:
- Cluster Autoscaler, som bevakar poddar som inte kan schemaläggas på noder på grund av resursbegränsningar. Klustret ökar automatiskt antalet noder för att möta efterfrågan.
- Horizontal Pod Autoscaler (HPA), som använder måttservern i ett Kubernetes-kluster för att övervaka resursefterfrågan för poddar. Om ett program behöver fler resurser ökar antalet poddar automatiskt för att möta efterfrågan.
Både HPA och klusterautoskalaren kan också minska antalet av poddar och noder efter behov. Autoskalning av kluster minskar antalet noder när det finns en tidsperiod med outnyttjad kapacitet. Alla poddar på en nod som Cluster Autoscaler behöver ta bort schemaläggs på ett säkert sätt någon annanstans i klustret.
Cluster Autoscaler kanske inte kan minska storleken i situationer där poddar inte kan flyttas, till exempel:
- En podd skapas direkt och backas inte upp av ett kontrollerobjekt, till exempel en Deployment eller ReplicaSet.
- En budget för poddstörningar (PDB) är för restriktiv och tillåter inte att antalet poddar hamnar under ett visst tröskelvärde.
- En pod använder nodväljare eller antitillhörighet som inte kan uppfyllas om den schemaläggs på en annan nod.
Använda KEDA med HPA
KEDA fungerar som en API för anpassade mått, med hjälp av skalare för att exponera mått för HPA, vilket förenklar processen med att utveckla en måttserver.
Skalare hjälper till att tillhandahålla mått från olika källor till HPA. KEDA har stöd för en mängd olika skalare, bland annat:
- Apache Kafka
- AWS CloudWatch
- AWS Kinesis Stream
- AWS SQS-kö
- Azure Blob Storage (lagring för stora datamängder)
- Azure Event Hubs
- Azure Log Analytics
- Azure Monitor
- Azure Service Bus
- Azure Storage-kö
- Google Cloud Platform Pub/Sub
- IBM MQ
- InfluxDB
- NATS-direktuppspelning
- OpenStack Swift
- PostgreSQL
- Prometheus
- RabbitMQ-kö
- Redis-listor
För att se den fullständiga listan, se För närvarande tillgängliga skalare för KEDA.