Autoscaling von Containerinstanzen

Bei der Bereitstellung mit Knative wird jede Überarbeitung automatisch auf die Anzahl der Containerinstanzen skaliert, die zum Verarbeiten aller eingehenden Anfragen erforderlich sind. 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. Beispielsweise kann Ihr Knative-Bereitstellungsdienst mit einer Datenbank interagieren, die nur eine bestimmte Anzahl gleichzeitig offener Verbindungen verarbeiten kann.

Ü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 schnellem Trafficanstieg, kann die Bereitstellung von Knative für einen kurzen Zeitraum etwas mehr Containerinstanzen erstellen als die angegebene Höchstzahl 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.

Bereitstellungen

Wenn Sie eine neue Version bereitstellen, migriert die Knative-Bereitstellung 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 dann verbraucht, wenn eine Instanz eine Anfrage verarbeitet. Dies bedeutet jedoch nicht, dass Instanzen durch Knative-Bereitstellung sofort heruntergefahren werden, sobald alle Anfragen verarbeitet wurden. Um die Auswirkungen von Kaltstarts zu minimieren, kann die Bereitstellung von Knative einige Instanzen inaktiv lassen. 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