Mit Knative serving können Sie die Infrastruktur, die zum Hosten von Software in der Google Kubernetes Engine (GKE) erforderlich ist, automatisch verwalten. Zur Verwaltung Ihrer Anwendungen verwendet Knative serving eine Organisationsstruktur, die als Ressourcenmodell bezeichnet wird. Dieses Ressourcenmodell besteht aus drei Hauptteilen: Dienste, Überarbeitungen und Containerinstanzen.
Das folgende Diagramm veranschaulicht diese Komponenten und ihre Interaktionen: Ein Google Cloud Projekt enthält zwei Knative serving-Dienste, Dienst A und Dienst B, mit jeweils mehreren Überarbeitungen. Dienst A verarbeitet Anfragen mit mehreren ausgeführten Containerinstanzen, während Dienst B im Leerlauf ist.
Knative serving-Dienste
Der Dienst ist die Hauptressource von Knative serving. Jeder Dienst befindet sich in einem bestimmten GKE-Cluster-Namespace.
Ein bestimmtes Google Cloud Projekt kann viele Dienste in verschiedenen Regionen oder GKE-Clustern ausführen.
Jeder Dienst stellt einen eindeutigen Endpunkt bereit und skaliert die zugrunde liegende Infrastruktur automatisch, um eingehende Anfragen zu verarbeiten.
Knative serving-Überarbeitungen
Bei jedem Deployment in einem Dienst wird eine Überarbeitung erstellt. Jede Überarbeitung umfasst ein bestimmtes Container-Image sowie Umgebungseinstellungen wie Umgebungsvariablen, Arbeitsspeicherlimits oder einen Gleichzeitigkeitswert.
Überarbeitungen können nach der Erstellung nicht mehr geändert werden. Wenn Sie beispielsweise ein Container-Image für einen neuen Knative serving-Dienst bereitstellen, wird die erste Überarbeitung erstellt. Wenn Sie anschließend für denselben Dienst ein anderes Container-Image bereitstellen, wird eine zweite Überarbeitung erstellt. Wenn Sie anschließend eine Umgebungsvariable festlegen, wird eine dritte Überarbeitung erstellt. Jede nachfolgende Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung.
Anfragen werden automatisch so schnell wie möglich an die neueste fehlerfreie Dienstüberarbeitung weitergeleitet. Sie können den Traffic nach Bedarf auf verschiedene Überarbeitungen aufteilen.
Knative serving-Containerinstanzen
Jede Überarbeitung, die Anfragen empfängt, wird automatisch auf die Anzahl der Containerinstanzen skaliert, die zur Verarbeitung aller Anfragen nötig sind. Eine Containerinstanz kann viele Anfragen gleichzeitig empfangen. Mit der Gleichzeitigkeitseinstellung können Sie die maximale Anzahl von Anfragen festlegen, die parallel an eine bestimmte Container instanz gesendet werden können.