Bewältigung komplexer unternehmenselastischer Skalierungsszenarien durch die Kombination von HPA und CronHPA

Dieser Artikel wurde von der Huawei Cloud Community geteilt: „ Umgang mit komplexen geschäftlichen elastischen Skalierungsszenarien durch HPA+CronHPA-Kombination “, Autor: Cloud Container Future.

Hintergrund

Im k8s-Cluster kann die horizontale automatische Skalierung von Containern (HPA) die Anzahl der Workload-Replikate (Replikate) entsprechend der Nutzung der Containerressourcen und innerhalb des festgelegten Replikatbereichs automatisch erweitern und verkleinern. HPA-Skalen basieren auf Indikatorschwellenwerten. Zu den gängigen Indikatoren gehören CPU und Speicher. Es kann auch durch benutzerdefinierte Indikatoren wie QPS, Anzahl der Verbindungen usw. skaliert werden. Es gibt jedoch ein Szenario: Es gibt eine gewisse Verzögerung bei der Skalierung basierend auf Indikatoren. Diese Art von Verzögerung umfasst hauptsächlich: Erfassungsverzögerung (Minutenebene), Beurteilungsverzögerung (Minutenebene) und Skalierungsverzögerung (Minutenebene). Diese Art der Verzögerung auf Minutenebene kann sich kurzfristig nicht an den schnellen Anstieg des Geschäftsverkehrs anpassen, was dazu führen kann, dass die CPU der Anwendung ansteigt und die Antwortzeit länger wird.

Die geplante horizontale automatische Skalierung von Containern (CronHPA ) ist eine Ergänzung zu HPA. Für Unternehmen mit Spitzenzeiten in festen Zeiträumen kann die Anzahl der Containerinstanzen im Voraus erweitert werden, um Leistungseinbußen durch plötzlichen Geschäftsverkehr und Geschäftsverzögerungen zu verhindern. Wenn sich das Geschäft auf einem Tiefpunkt befindet, wird ein geplantes Ressourcenrecycling ausgelöst.

In einigen Geschäftsszenarien kommt es zu Verkehrsspitzen und offensichtlichen Spitzen und Tiefpunkten. Wenn sowohl CronHPA- als auch HPA-Richtlinien gleichzeitig konfiguriert werden, kann die folgende Situation eintreten: Bevor die Geschäftsspitze erreicht wird, erweitert die geplante CronHPA-Aufgabe die Kopie des Geschäftscontainers Im Voraus erkennt HPA möglicherweise, dass die Ressourcennutzung sehr gering ist, und löst eine Instanzskalierung aus, was dazu führt, dass die Vorskalierungsstrategie fehlschlägt.

Der Huawei Cloud CCE-Dienst unterstützt die gemeinsame Einstellung der CronHPA-Richtlinie und der HPA-Richtlinie und legt dynamisch die Ober- und Untergrenze des HPA-Kopierbereichs fest, um die Anzahl der Business-Container-Instanzen anzupassen.

1.jpg

Anwendungsbeispiel

Im täglichen Leben weisen viele Geschäftsszenarien offensichtliche Spitzen und Tiefpunkte auf, wenn der Datenverkehr platzt, und reagieren sehr empfindlich auf Reaktionsverzögerungen, wie zum Beispiel:

1. Online-Spiele : X Game Client, ein groß angelegtes Online-Spiel, verzeichnet in Spitzenzeiten wie Abenden, Wochenenden und Feiertagen einen starken Anstieg der Spielerzahl, wodurch die Belastung des Spieleservers sofort ansteigt Wenn die Anzahl der Ladekopien mit der Zeit langsam erhöht wird, kann dies zu Netzwerkverzögerungen führen und das Spielerlebnis erheblich beeinträchtigen. 

2. Live-Video : X Video Live APP: Wenn bestimmte Großveranstaltungen, Wettbewerbe und andere Live-Übertragungen beginnen, wird die Anzahl der Zuschauer schnell ansteigen, was zu einem starken Anstieg der Serverlast und einer Erhöhung der Netzwerklatenz führt, was zu einem Anstieg der Netzwerklatenz führt Dies wiederum führt zu einem Verlust an Benutzern, die die Live-Übertragung ansehen. 

3. E-Commerce-Werbung : Die X-E-Commerce-Plattform weckt in der Regel bei ihren Werbeaktivitäten die Begeisterung der Benutzer, was zu einem deutlichen Anstieg der Benutzerbesuche und einem starken Anstieg der Serverlast führt. Wenn der Geschäftscontainer nicht rechtzeitig erweitert wird, ist dies wahrscheinlich dass Benutzer die Erfahrung beeinträchtigen, was zu ernsthaften Geschäftsunterbrechungen führen kann; 

4. Finanztransaktionen : Die Finanzhandelsplattform X umfasst eine Vielzahl von Finanzprodukten, die alle eine Echtzeitreaktion erfordern. Netzwerkverzögerungen haben einen großen Einfluss auf die Transaktionseffizienz und -genauigkeit. In Spitzenzeiten wird das Transaktionsvolumen dramatisch ansteigen und auch die Netzwerklatenz wird zunehmen. 

Die oben genannten Geschäftsszenarien erfordern alle eine effiziente und stabile Netzwerkunterstützung und reagieren sehr empfindlich auf Netzwerklatenz . Wenn der Geschäftscontainer nicht rechtzeitig erweitert wird, ist die Netzwerklatenz zu hoch, die Benutzererfahrung wird beeinträchtigt und sogar der normale Geschäftsbetrieb wird beeinträchtigt.

Im Folgenden wird der Live-Videodienst als Beispiel verwendet, um die Durchführung einer elastischen Skalierungskonfiguration vorzustellen. Angenommen, es gibt jeden Abend von 8:30 bis 22:00 Uhr eine beliebte Live-Übertragung. Während dieser Zeit nimmt die Anzahl der Benutzerbesuche stark zu und dann nimmt der Verkehr langsam ab, bis er einen Tiefpunkt erreicht. Um Kosten zu sparen, können Sie mit der folgenden Konfiguration die Anzahl der Business-Container-Instanzen im Voraus erhöhen, bevor die Traffic-Spitze eintrifft. Nach dem Abklingen der Traffic-Spitze können Sie die Anzahl der Container-Instanzen basierend auf dem Geschäftsfluss langsam verkleinern:

1. Klicken Sie in der CCE-Konsole auf den Clusternamen, um den Cluster aufzurufen. 

2. Klicken Sie in der linken Navigationsleiste auf „Workload“ und dann in der Operationsspalte des Ziel-Workloads auf „Mehr > Auto Scaling“. 

2.jpg

3. Wählen Sie „HPA+CronHPA-Richtlinie“ als Richtlinientyp, aktivieren Sie die HPA-Richtlinie und aktivieren Sie gleichzeitig die CronHPA- Richtlinie . Zu diesem Zeitpunkt wird CronHPA regelmäßig die maximale und minimale Anzahl von Instanzen der HPA-Richtlinie anpassen. 

4. Legen Sie die HPA-Richtlinie fest 

Legen Sie den Instanzbereich und die Systemrichtlinie fest, wie unten gezeigt. HPA passt die Anzahl der Instanzen des Containers dynamisch im Bereich von 1 bis 10 an, basierend auf der CPU-Auslastung des aktuellen Geschäftscontainers. , wird die Kapazität automatisch erweitert, wenn die CPU-Auslastung niedrig ist, und die Anzahl der Business-Container-Instanzen automatisch auf 60 % herunterskaliert.

3.png

5. Richten Sie die CronHPA-Richtlinie ein 

Richten Sie geplante Aufgaben ein, wie in der Abbildung unten dargestellt

Strategie 1 : Passen Sie den Nummernbereich der HPA-Richtlinieninstanzen um 20:00 Uhr von 1–10 auf 8–10 an.

Strategie 2 : Passen Sie den Nummernbereich der HPA-Richtlinieninstanzen um 22:30 Uhr von 8–10 auf 1–10 an.

4.png

6. Wiederholen Sie die oben genannten Schritte. Sie können mehrere Richtlinienregeln hinzufügen, die Auslösezeit der Richtlinien kann jedoch nicht identisch sein . 

7. Klicken Sie nach Abschluss der Einstellungen auf „Erstellen“. 

Nachdem die obige Konfiguration abgeschlossen ist, passt CronHPA die Anzahl der HPA-Richtlinieninstanzen um 20:00 Uhr vor der Verkehrsspitze von 1-10 auf 8-10 an. Zu diesem Zeitpunkt erhöht HPA die Anzahl der Geschäftsinstanzen auf mindestens 8 Bereiten Sie sich auf die kommende Verkehrsspitze vor. Warten Sie bis 22:30 Uhr, nachdem die Verkehrsspitze vorbei ist, um den Bereich der HPA-Richtlinieninstanzen von 8–10 auf 1–10 anzupassen. Zu diesem Zeitpunkt verringert HPA die Anzahl der Geschäftscontainerinstanzen auf einen geeigneten Wert basierend auf den Geschäftsverkehrsbedingungen um die Benutzerkosten zu senken.

CronHPA- und HPA-Verknüpfungsanalyse

HPA ist ein Controller zur Steuerung der horizontalen Skalierung von Pods. HPA überprüft regelmäßig die Ressourcennutzungsdaten von Pods, berechnet die Anzahl der Replikate, die erforderlich sind, um den für HPA-Ressourcen konfigurierten Zielwert zu erreichen, und passt dann das Replikatfeld der Zielressource an ( wie z. B. Bereitstellung).

CronHPA unterstützt die regelmäßige Anpassung der maximalen und minimalen Anzahl von Instanzen der HPA-Richtlinie, um eine Verknüpfung mit HPA zu erreichen und so der Workload-Skalierung in komplexen Szenarien gerecht zu werden.

Da HPA und CronHPA beide auf dasselbe Bereitstellungsobjekt wirken, besteht ein Konfliktproblem. Die beiden Skalierungsstrategien sind unabhängig voneinander. Der später ausgeführte Vorgang überschreibt den zuvor ausgeführten Vorgang, sodass der Skalierungseffekt nicht den Erwartungen entspricht. Diese Situation muss vermieden werden.

5.jpg

Um die oben genannten Probleme zu vermeiden, haben wir CronHPA erweitert, um die Anwendung von CronHPA-Regeln auf HPA-Richtlinien zu unterstützen. CronHPA passt nur die Richtlinienkonfiguration von HPA an und die Anzahl der Instanzen von Geschäftscontainern wird nur von HPA verwaltet, wodurch die Zusammenarbeit realisiert wird Arbeit der beiden elastischen Strategien.

 

Zusammenfassen

Die von der k8s-Community bereitgestellte HPA-Richtlinie unterstützt die automatische Erweiterung und Verkleinerung basierend auf der CPU-, Speicher- und anderen Ressourcennutzung des Geschäftscontainers innerhalb der konfigurierten Anzahl von Instanzen. Wenn man die geplante Erweiterungsstrategie CronHPA überlagert, wird erwartet, dass die Anzahl der Geschäftscontainerkopien im Voraus durch die geplante CronHPA-Aufgabe erweitert wird, bevor der Geschäftspeak erreicht wird. Zu diesem Zeitpunkt erkennt HPA jedoch möglicherweise, dass die Ressourcennutzung sehr gering ist und eine Instanzverkleinerung auslösen, was zu einer ungültigen Vorerweiterungsstrategie führt. Der Huawei Cloud CCE-Dienst kombiniert HPA und CronHPA, um organische Synergien zwischen Indikatorenlastizitätsstrategien und Timing-Elastizitätsstrategien zu erzielen und so den komplexen elastischen Skalierungsszenarien von Kundenunternehmen gerecht zu werden.

Referenzdokumentation:

https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale/

https://support.huaweicloud.com/usermanual-cce/cce_10_0415.html

Klicken Sie hier, um zu folgen und so schnell wie möglich mehr über die neuen Technologien von Huawei Cloud zu erfahren~

 

Das chinesische KI-Team hat zusammengepackt und ist mit Hunderten von Menschen in die USA gereist. Wie viel Umsatz kann Huawei offiziell bekannt geben, dass die Open-Source-Spiegelstation der Yu Chengdong- Universität angepasst wurde? Der offiziell eröffnete externe Netzwerkzugang nutzte TeamViewer, um 3,98 Millionen zu überweisen! Was sollten Remote-Desktop-Anbieter tun? Die erste Front-End-Visualisierungsbibliothek und Gründer von Baidus bekanntem Open-Source-Projekt ECharts – ein ehemaliger Mitarbeiter eines bekannten Open-Source-Unternehmens, der „zum Meer ging“, verbreitete die Nachricht: Nachdem er von seinen Untergebenen herausgefordert worden war, wurde der Techniker Der Anführer wurde wütend und unhöflich und entließ die schwangere Mitarbeiterin. OpenAI erwog, der Rust Foundation zu erlauben, 1 Million US-Dollar zu spenden. Bitte sagen Sie mir, welche Rolle time.sleep(6) spielt ?
{{o.name}}
{{m.name}}

Ich denke du magst

Origin my.oschina.net/u/4526289/blog/11149058
Empfohlen
Rangfolge