Concept - Kubernetes-schaalopties
Soms is het schalen van het aantal pods voor het afhandelen van de toegenomen vraag niet voldoende. Om aan te passen aan veranderende toepassingsvereisten, zoals tussen de werkdag en avond of in een weekend, hebben clusters vaak een manier nodig om automatisch te schalen.
Kubernetes-schaalopties
Kubernetes-clusters kunnen worden geschaald met behulp van een van de volgende onderdelen:
- De Automatische schaalaanpassing van clusters, waarmee wordt gecontroleerd op pods die niet op knooppunten kunnen worden gepland vanwege resourcebeperkingen. Het cluster verhoogt automatisch het aantal knooppunten om aan de vraag te voldoen.
- De HPA (Horizontal Pod Autoscaler), die gebruikmaakt van de Metrics Server in een Kubernetes-cluster om de vraag naar resources van pods te bewaken. Als een toepassing meer resources nodig heeft, wordt het aantal pods automatisch verhoogd om aan de vraag te voldoen.
Zowel de HPA als de Cluster Autoscaler kunnen zo nodig ook het aantal pods en knooppunten verminderen. De automatische schaalaanpassing van clusters vermindert het aantal knooppunten wanneer er een periode is met ongebruikte capaciteit. Pods die zich op een knooppunt bevinden dat door de Cluster Autoscaler moet worden verwijderd, worden veilig elders in het cluster gepland.
De Cluster Autoscaler kan mogelijk niet omlaag schalen in situaties waarin de pods niet kunnen worden verplaatst, zoals:
- Een pod wordt rechtstreeks gemaakt en wordt niet ondersteund door een controllerobject, zoals een implementatie of replicaset.
- Een budget voor podonderbreking (PDB) is te beperkend en staat niet toe dat het aantal pods onder een bepaalde drempelwaarde valt.
- Een pod maakt gebruik van node selectors of antiaffiniteit die niet kan worden uitgevoerd als deze op een ander knooppunt wordt gepland.
KEDA gebruiken met de HPA
KEDA fungeert als een aangepaste API voor metrische gegevens, met behulp van scalers om metrische gegevens beschikbaar te maken voor de HPA, waardoor het proces van het ontwikkelen van een metrische server wordt vereenvoudigd.
Scalers bieden metrische gegevens van verschillende bronnen aan de HPA. KEDA ondersteunt een groot aantal schaalders, waaronder:
- Apache Kafka
- AWS CloudWatch
- AWS Kinesis Stream
- AWS SQS-wachtrij
- Azure Blob Storage (opslagservice van Microsoft)
- Azure Event Hubs
- Azure Log Analytics
- Azure Monitor
- Azure Service Bus
- Azure Storage-wachtrij
- Google Cloud Platform Pub/Sub
- IBM MQ
- InfluxDB
- NATS-streaming
- OpenStack Swift
- PostgreSQL
- Prometheus
- RabbitMQ-wachtrij
- Redis-lijsten
Voor de volledige lijst, zie Momenteel beschikbare scalers voor KEDA.