Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Skalierung der Arbeitslast
Die Skalierung der Arbeitslast in Kubernetes ist für die Aufrechterhaltung der Anwendungsleistung und Ressourceneffizienz in dynamischen Umgebungen unerlässlich. Durch Skalierung wird sichergestellt, dass Anwendungen unterschiedliche Workloads ohne Leistungseinbußen bewältigen können. Kubernetes bietet die Möglichkeit, Ressourcen auf der Grundlage von Echtzeitmetriken automatisch nach oben oder unten zu skalieren, sodass Unternehmen schnell auf Änderungen im Datenverkehr reagieren können. Diese Elastizität verbessert nicht nur die Benutzererfahrung, sondern optimiert auch die Ressourcennutzung und trägt so dazu bei, die Kosten zu minimieren, die mit zu wenig genutzten oder übermäßig bereitgestellten Ressourcen verbunden sind.
Darüber hinaus unterstützt eine effektive Skalierung der Arbeitslast eine hohe Verfügbarkeit und stellt sicher, dass Anwendungen auch in Zeiten mit hoher Nachfrage reaktionsschnell bleiben. Die Workload-Skalierung in Kubernetes ermöglicht es Unternehmen, Cloud-Ressourcen besser zu nutzen, indem sie die Kapazität dynamisch an aktuelle Bedürfnisse anpassen.
In diesem Abschnitt werden die folgenden Arten der Workload-Skalierung beschrieben:
Horizontal Pod Autoscaler
Der Horizontal Pod Autoscaler
In Kontexten, in denen die Nutzernachfrage im Laufe der Zeit stark schwanken kann, wie z. B. bei Web-Apps, Microservices usw. APIs, ist HPA besonders hilfreich.
Der Horizontal Pod Autoscaler bietet die folgenden Hauptfunktionen:
-
Automatische Skalierung — HPA erhöht oder verringert automatisch die Anzahl der Pod-Replikate als Reaktion auf Echtzeitmetriken und stellt so sicher, dass Anwendungen skaliert werden können, um den Benutzeranforderungen gerecht zu werden.
-
Metrikbasierte Entscheidungen — Standardmäßig skaliert HPA auf der Grundlage der CPU-Auslastung. Es können jedoch auch benutzerdefinierte Messwerte wie die Speichernutzung oder anwendungsspezifische Metriken verwendet werden, was maßgeschneiderte Skalierungsstrategien ermöglicht.
-
Konfigurierbare Parameter — Sie können die minimale und maximale Anzahl von Replikaten sowie die gewünschten Nutzungsprozentsätze wählen, sodass Sie selbst bestimmen können, wie stark die Skalierung sein soll.
-
Integration mit Kubernetes — Um Ressourcen zu überwachen und zu ändern, arbeitet HPA mit anderen Elementen des Kubernetes-Ökosystems zusammen, darunter dem Metrics Server, der Kubernetes-API und benutzerdefinierten Metrikadaptern.
-
Bessere Ressourcennutzung — HPA hilft dabei, sicherzustellen, dass Ressourcen effektiv genutzt werden, wodurch Kosten gesenkt und die Leistung verbessert werden, indem die Anzahl der Pods dynamisch geändert wird.
Proportionaler Cluster-Autoscaler
Der Cluster Proportional Autoscaler
Dieser Ansatz ist besonders nützlich für Anwendungen, die ein gewisses Maß an Redundanz oder Verfügbarkeit im Verhältnis zur Clustergröße aufrechterhalten müssen, wie CoreDNS und andere Infrastrukturdienste. Zu den wichtigsten Anwendungsfällen für CPA gehören die folgenden:
-
Übermäßige Bereitstellung
-
Skalieren Sie die wichtigsten Plattformdienste
-
Skalieren Sie Workloads, da CPA keinen Metrikserver oder Prometheus-Adapter benötigt
Durch die Automatisierung des Skalierungsprozesses unterstützt CPA Unternehmen dabei, eine ausgewogene Verteilung der Arbeitslast aufrechtzuerhalten, die Ressourceneffizienz zu steigern und sicherzustellen, dass Anwendungen entsprechend bereitgestellt werden, um die Benutzeranforderungen zu erfüllen.
Der Cluster Proportional Autoscaler bietet die folgenden Hauptfunktionen:
Knotenbasierte Skalierung — CPA skaliert Replikate entsprechend der Anzahl der Clusterknoten, die geplant werden können, sodass Anwendungen proportional zur Größe des Clusters erweitert oder verkleinert werden können.
Proportionale Anpassung — Um sicherzustellen, dass die Anwendung entsprechend den Änderungen der Clustergröße skaliert werden kann, stellt der Autoscaler ein proportionales Verhältnis zwischen der Anzahl der Knoten und der Anzahl der Replikate her. Diese Beziehung wird verwendet, um die gewünschte Anzahl von Replikaten für eine Arbeitslast zu berechnen.
Integration mit Kubernetes-Komponenten — CPA funktioniert mit Standard-Kubernetes-Komponenten wie dem Horizontal Pod Autoscaler (HPA), konzentriert sich jedoch speziell auf die Anzahl der Knoten und nicht auf die Kennzahlen zur Ressourcennutzung. Diese Integration ermöglicht eine umfassendere Skalierungsstrategie.
Golang-API-Clients — Um die Anzahl der Knoten und ihre verfügbaren Kerne zu überwachen, verwendet CPA Golang-API-Clients, die innerhalb von Pods ausgeführt werden und mit dem Kubernetes-API-Server kommunizieren.
Konfigurierbare Parameter — Mithilfe von können Benutzer Schwellenwerte und Skalierungsparameter festlegen
ConfigMap
, anhand derer CPA sein Verhalten ändert, und sicherstellen, dass der beabsichtigte Skalierungsplan eingehalten wird.
Kubernetes-basierter ereignisgesteuerter Autoscaler
Der auf Kubernetes basierende Event Driven Autoscaler (KEDA
Durch die Automatisierung des Skalierungsprozesses auf der Grundlage von Ereignissen unterstützt KEDA Unternehmen dabei, die Ressourcennutzung zu optimieren, die Anwendungsleistung zu verbessern und die Kosten im Zusammenhang mit übermäßiger Bereitstellung zu senken. Dieser Ansatz ist besonders nützlich für Anwendungen mit unterschiedlichen Datenverkehrsmustern, wie z. B. Microservices, serverlose Funktionen und Echtzeit-Datenverarbeitungssysteme.
KEDA bietet die folgenden Hauptfunktionen:
-
Ereignisgesteuerte Skalierung — Mit KEDA können Sie Skalierungsregeln auf der Grundlage externer Ereignisquellen wie Nachrichtenwarteschlangen, HTTP-Anfragen oder benutzerdefinierten Metriken definieren. Diese Funktion trägt dazu bei, dass Anwendungen entsprechend der Nachfrage in Echtzeit skaliert werden.
-
Leichte Komponente — KEDA ist eine einfache Komponente mit einem einzigen Zweck, für deren einfache Integration in bestehende Kubernetes-Cluster weder viel Einrichtung noch Mehraufwand erforderlich ist.
-
Integration mit Kubernetes — KEDA erweitert die Funktionen von Kubernetes-nativen Komponenten wie dem Horizontal Pod Autoscaler (HPA). KEDA erweitert diese Komponenten um ereignisgesteuerte Skalierungsfunktionen und verbessert sie, anstatt sie zu ersetzen.
-
Support für mehrere Ereignisquellen — KEDA ist mit einer Vielzahl von Ereignisquellen kompatibel, darunter beliebte Messaging-Plattformen wie RabbitMQ, Apache Kafka und andere. Aufgrund dieser Anpassungsfähigkeit können Sie die Skalierung an Ihre einzigartige ereignisgesteuerte Architektur anpassen.
-
Benutzerdefinierte Skalierer — Mithilfe von benutzerdefinierten Skalierern können Sie spezifische Metriken festlegen, anhand derer KEDA Skalierungsaktionen als Reaktion auf bestimmte Geschäftslogik oder Anforderungen einleiten kann.
-
Deklarative Konfiguration — Gemäß den Kubernetes-Prinzipien können Sie KEDA verwenden, um das Skalierungsverhalten deklarativ zu beschreiben, indem Sie benutzerdefinierte Kubernetes-Ressourcen verwenden, um zu definieren, wie die Skalierung erfolgen soll.