In Knative Serving 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:
- Die CPU-Menge, die zum Verarbeiten einer Anfrage benötigt wird
- Die Einstellung „Gleichzeitigkeit”
- Die maximal zulässige Anzahl von Containerinstanzen
- Die zulässige Mindestzahl von Containerinstanzen
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 Serving-Dienst 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 plötzlichem hohem Traffic, kann Knative Serving einen kurzen Zeitraum etwas mehr als die angegebene Höchstzahl von Containerinstanzen erstellen. 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 Version zur neuen. 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 Knative Serving Instanzen sofort heruntergefährt, sobald alle Anfragen verarbeitet wurden. Um die Auswirkungen von Kaltstarts zu vermindern, kann Knative Serving 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
- Informationen zum Verwalten der maximalen Anzahl von Instanzen Ihrer Knative Serving-Dienste finden Sie unter Maximale Anzahl von Containerinstanzen festlegen.
- Informationen zum Verwalten der maximalen Anzahl gleichzeitiger Anfragen, die von jeder Containerinstanz verarbeitet werden, finden Sie unter Gleichzeitigkeit festlegen.
- Informationen zum Optimieren der Gleichzeitigkeitseinstellung finden Sie unter Tipps für Entwickler: Gleichzeitigkeit optimieren.
- Wenn Sie festlegen möchten, dass eine inaktive Instanz dauerhaft ausgeführt wird, um damit Latenz oder Kaltstarts bei ersten Anfragen zu minimieren, lesen Sie den Abschnitt Inaktive Instanzen mithilfe von
min-instance
aktivieren.