Autoscaling von Containerinstanzen

In Knative serving ist jede Überarbeitung automatisch auf die Anzahl der Containerinstanzen skaliert, die für die Verarbeitung alle eingehenden Anfragen. Wenn eine Überarbeitung keinen Traffic empfängt, wird sie standardmäßig auf null Containerinstanzen herunterskaliert. Bei Bedarf können Sie diese Standardeinstellung ändern, um eine Instanz mithilfe der Einstellung Mindestinstanzen als inaktiv oder „einsatzbereit” festzulegen.

Die Anzahl der geplanten Instanzen wird beeinflusst durch:

In einigen Fällen möchten Sie vielleicht die Gesamtzahl der Containerinstanzen, die gestartet werden können, aus Gründen der Kostenkontrolle oder aus Gründen der besseren Kompatibilität mit anderen von Ihrem Dienst verwendeten Ressourcen begrenzen. Beispiel: Ihre Knative serving kann der Dienst mit einer Datenbank interagieren, die nur eine bestimmte Anzahl an Daten gleichzeitig offene Verbindungen.

Über die maximalen Containerinstanzen

Mit der Einstellung „Maximale Containerinstanzen” können Sie die Gesamtzahl der Instanzen begrenzen, die parallel gestartet werden können, wie unter Maximale Anzahl von Containerinstanzen festlegen beschrieben.

Maximale Anzahl von Instanzen überschreiten

Unter normalen Umständen wird die Überarbeitung durch das Erstellen neuer Instanzen horizontal skaliert, um die eingehende Trafficlast zu verarbeiten. Wenn Sie jedoch ein maximales Instanzlimit festlegen, sind in einigen Szenarien nicht genügend Instanzen vorhanden, um diese Trafficlast zu bewältigen. In diesem Fall werden eingehende Anfragen bis zu 60 Sekunden in die Warteschlange gestellt. Wenn eine Instanz während dieses 60-Sekunden-Fensters die Verarbeitung von Anfragen abschließt, steht sie für die Verarbeitung von Anfragen in der Warteschlange zur Verfügung. Wenn während des 60-Sekunden-Fensters keine Instanzen verfügbar werden, schlägt die Anfrage mit dem Fehlercode 429 in Cloud Run fehl.

Skalierungsgarantien

Das Limit für die Höchstzahl der Instanzen ist eine Obergrenze. Das Festlegen eines hohen Limits bedeutet nicht, dass Ihre Überarbeitung auf die angegebene Anzahl von Instanzen horizontal skaliert wird. Es bedeutet lediglich, dass die Anzahl der Containerinstanzen das Limit zu keinem Zeitpunkt überschreiten sollte.

Trafficspitzen

In einigen Fällen, z. B. bei raschem Trafficanstieg, kann Knative serving für kurze Zeit ausgewählt werden, erstellen Sie etwas mehr Containerinstanzen als angegeben. Wert für die maximale Anzahl von Instanzen. Wenn Ihr Dienst dieses vorübergehende Verhalten nicht akzeptiert, sollten Sie vielleicht eine Sicherheitsspanne hinzufügen und einen niedrigeren Wert für die maximale Anzahl von Instanzen festlegen.

Deployments

Wenn Sie eine neue Version bereitstellen, migriert Knative serving den Traffic schrittweise. von der alten zur neuen Version. Da für jede Überarbeitung eine Höchstzahl an Instanzen festgelegt ist, kann es vorkommen, dass das festgelegte Limit in der Zeit nach der Bereitstellung vorübergehend überschritten wird.

Inaktive Instanzen und Minimierung von Kaltstarts

Kubernetes-Ressourcen werden nur verbraucht, wenn eine Instanz eine Anfrage verarbeitet. Das bedeutet jedoch nicht, dass Knative serving sofort nachdem sie alle Anfragen verarbeitet haben. Um die Auswirkungen von Kälte zu minimieren startet, hält Knative serving einige Instanzen inaktiv. Diese Instanzen können Anfragen bei plötzlichen Trafficspitzen verarbeiten.

Wenn eine Containerinstanz beispielsweise die Verarbeitung von Anfragen abgeschlossen hat, bleibt sie möglicherweise für einen bestimmten Zeitraum inaktiv, falls eine weitere Anfrage verarbeitet werden muss. Eine inaktive Containerinstanz kann Ressourcen wie offene Datenbankverbindungen beibehalten. Für Cloud Run ist die CPU jedoch nicht verfügbar

Mit der Einstellung min-instance können Sie inaktive Instanzen dauerhaft verfügbar halten.

Nächste Schritte