Autoscaling von Arbeitslasten anhand von Messwerten


Auf dieser Seite wird beschrieben, wie Sie die Anzahl der Replikate einer bestimmten Arbeitslast mithilfe von benutzerdefinierten, externen oder Prometheus-Messwerten automatisch erhöhen oder verringern können.

Warum Autoscaling anhand von Messwerten erfolgt

Beispielsweise eine Anwendung, die Aufgaben aus einer Warteschlange abruft und ausführt. Die Anwendung hat unter Umständen ein Service Level Objective (SLO) für die Verarbeitungszeit einer Aufgabe oder für die Anzahl der ausstehenden Aufgaben. Wenn die Warteschlange wächst, ist es möglich, dass mehr Replikate der Arbeitslast dem Arbeitslast-SLO entsprechen. Ist die Warteschlange leer oder nimmt schneller als erwartet ab, können Sie Geld sparen, indem Sie weniger Replikate ausführen und gleichzeitig das Arbeitslast-SLO erfüllen.

Informationen zu benutzerdefinierten, Prometheus- und externen Messwerten

Sie können Arbeitslasten basierend auf benutzerdefinierten, Prometheus- oder externen Messwerten skalieren.

Ein benutzerdefinierter Messwert wird von Ihrer in Kubernetes ausgeführten Anwendung gemeldet. Weitere Informationen finden Sie unter Benutzerdefinierte und Prometheus-Messwerte.

Messwerte, die von Managed Service for Prometheus stammen, werden als benutzerdefinierte Messwerttypen betrachtet.

Ein externer Messwert wird von einer Anwendung oder einem Dienst gemeldet, der nicht auf Ihrem Cluster ausgeführt wird, dessen Leistung sich jedoch auf Ihre Kubernetes-Anwendung auswirkt. Sie können beispielsweise automatisch auf jedem Messwert in Cloud Monitoring skalieren, einschließlich Pub/Sub oder Dataflow. Prometheus-Messwerte werden in Ihrem Cluster weggelassen, mit denen Sie die automatische Skalierung verwenden können. Weitere Informationen finden Sie unter Externe Messwerte.

Benutzerdefinierte und Prometheus-Messwerte

Wir empfehlen die Verwendung von Managed Service for Prometheus, um benutzerdefinierte Messwerte zu erstellen und zu verwalten. Sie können die Prometheus-Abfragesprache (PromQL) verwenden, um alle Messwerte in Monitoring abzufragen. Weitere Informationen finden Sie unter Horizontales Pod-Autoscaling für Managed Service for Prometheus.

Ihre Anwendung kann einen benutzerdefinierten Messwert an das Monitoring melden. Sie haben die Möglichkeit, Kubernetes so zu konfigurieren, dass auf diese Messwerte reagiert und Ihre Arbeitslast automatisch skaliert wird. Sie können Ihre Anwendung beispielsweise anhand von Messwerten wie Abfragen pro Sekunde, Schreibvorgänge pro Sekunde, Netzwerkleistung, Latenz bei der Kommunikation mit einer anderen Anwendung oder anderen für Ihre Arbeitslast sinnvollen Messwerten skalieren. Weitere Informationen finden Sie unter Pod-Autoscaling anhand von Messwerten optimieren.

Externe Messwerte

Wenn Sie Ihre Arbeitslast basierend auf der Leistung einer Anwendung oder eines Dienstes außerhalb von Kubernetes skalieren möchten, können Sie einen externen Messwert konfigurieren. Sie müssen beispielsweise die Kapazität Ihrer Anwendung erhöhen, um Nachrichten von Pub/Sub aufzunehmen, wenn die Anzahl der nicht zugestellten Nachrichten tendenziell zunimmt. Die externe Anwendung muss den Messwert in eine Monitoring-Instanz exportieren, auf die der Cluster zugreifen kann. Der Trend der einzelnen Messwerte im Laufe der Zeit bewirkt, dass das horizontale Pod-Autoscaling die Anzahl der Replikate in der Arbeitslast automatisch ändert. Weitere Informationen finden Sie unter Pod-Autoscaling anhand von Messwerten optimieren.

Messwerte in Monitoring importieren

So können Sie Messwerte in Monitoring importieren:

Nächste Schritte