资源模型

下图展示了 Knative serving 资源模型:

Knative serving 服务和修订版本

该图展示了一个包含两项 Knative serving 服务(Service AService B)的 Google Cloud 项目,其中每项服务都有多个修订版本。

在该图中,Service A 正在接收多个请求,因此需要启动和运行多个容器实例。请注意,Service B 当前尚未接收请求,因此尚未启动容器实例。

Knative serving 服务

该服务是 Knative serving 的主要资源。 每项服务都位于特定的 GKE 集群命名空间中。

给定 Google Cloud 项目可以在不同区域或 GKE 集群中运行多项服务。

每项服务都会公开唯一端点,并根据需要处理的传入请求数量自动扩缩底层基础架构。

Knative serving 修订版本

向服务执行的每次部署都会创建一个修订版本。修订版本包含特定容器映像以及环境设置(如环境变量、内存限制或并发值)。

修订版本是不可变的,也就是说,修订版本一旦创建便无法修改。例如,将容器映像部署到新的 Knative serving 服务时,第一个修订版本即会创建。如果接着将另一个容器映像部署到此同一服务,则第二个修订版本即会创建。如果随后设置了环境变量,则第三个修订版本即会创建,依此类推。

系统会尽快将请求自动路由到运行状况良好的最新服务修订版本。 您可以根据需要在不同的修订版本之间拆分流量

Knative serving 容器实例

接收请求的每个修订版本都会根据处理所有这些请求所需的容器实例数量而自动扩缩。请注意,容器实例可以同时接收许多请求。利用并发设置,您可以设置可并行发送到给定容器实例的请求数上限。