Konzept: Kubernetes-Skalierungsoptionen
Manchmal reicht es nicht aus, die Anzahl der Pods zu skalieren, um dem gestiegenen Bedarf gerecht zu werden. Für eine Anpassung an sich ändernde Anwendungsanforderungen, z.B. zwischen Arbeitstag und Abend oder an einem Wochenende, benötigen Cluster oft eine Möglichkeit zur automatischen Skalierung.
Kubernetes-Skalierungsoptionen
Kubernetes-Cluster können mithilfe einer der folgenden Komponenten skaliert werden:
- Der Cluster Autoscaler sucht nach Pods, die aufgrund von Ressourcenbeschränkungen nicht auf Knoten geplant werden können. Der Cluster erhöht automatisch die Anzahl der Knoten, um den Bedarf zu erfüllen.
- Der Horizontal Pod Autoscaler (HPA) verwendet Metrics Server in einem Kubernetes-Cluster, um den Ressourcenbedarf der Pods zu überwachen. Wenn eine Anwendung mehr Ressourcen benötigt, wird die Anzahl von Pods automatisch erhöht, um den Bedarf zu decken.
Sowohl der HPA als auch der Cluster Autoscaler können bei Bedarf die Anzahl der Pods und Knoten verringern. Der Cluster-Autoscaler verringert die Anzahl der Knoten, wenn es einen Zeitraum mit nicht verwendeter Kapazität gibt. Alle Pods auf einem Knoten, die vom Cluster Autoscaler entfernt werden müssen, werden sicher an anderer Stelle im Cluster eingeplant.
Der Cluster-Autoscaler kann in Situationen, in denen die Pods nicht verschoben werden können, z. B.:
- Ein Pod wird direkt erstellt und nicht von einem Controllerobjekt wie z. B. einer Bereitstellungs- oder Replikatgruppe unterstützt.
- Ein Budget für die Unterbrechung von Pods (Pod Disruption Budget, PDB) ist zu restriktiv und lässt nicht zu, dass die Anzahl von Pods unter einen bestimmten Schwellenwert fällt.
- Ein Pod verwendet Knotenselektoren oder Anti-Affinität, die nicht berücksichtigt werden können, wenn der Pod auf einem anderen Knoten geplant wird.
Verwenden von KEDA mit dem HPA
KEDA fungiert als benutzerdefinierte Metrik-API, wobei Skalierungsgeber verwendet werden, um Metriken für die HPA verfügbar zu machen und den Prozess der Entwicklung eines Metrikservers zu vereinfachen.
Scaler helfen dabei, Metriken aus verschiedenen Quellen bis hin zur HPA bereitzustellen. KEDA unterstützt eine Vielzahl von Scalern, darunter:
- Apache Kafka
- AWS CloudWatch
- AWS Kinesis Stream
- AWS SQS-Warteschlange
- Azure Blob Storage
- Azure Event Hubs
- Azure Log Analytics
- Azure Monitor
- Azure-Servicebus
- Azure Storage-Warteschlange
- Google Cloud Plattform Pub/Sub
- IBM MQ
- InfluxDB
- NATS Streaming
- OpenStack Swift
- PostgreSQL
- Prometheus
- RabbitMQ-Warteschlange
- Redis-Listen
Die vollständige Liste finden Sie unter Derzeit verfügbare Scaler für KEDA.