跳到内容

Knative Serving 架构

Knative Serving 包含几个组件,构成了 Serverless 平台的主干。本页解释了 Knative Serving 的高层架构。请参阅 Knative Serving 概述请求流 以获取更多信息。

Knative Serving Architecture

组件

组件 职责
激活器 激活器是**数据平面**的一部分。它负责对传入请求进行排队(如果 Knative Service 已缩减至零)。它与自动伸缩器通信,以重新启动已缩减至零的服务并转发排队的请求。激活器还可以作为请求缓冲区来处理流量突发。更多详情请参见 此处
自动扩缩器 自动伸缩器负责根据配置、指标和传入请求来伸缩 Knative 服务。
控制器 控制器负责管理集群内 Knative 资源的状况。它会监视多个对象,管理依赖资源的生命周期,并更新资源状态。
队列代理 Queue-Proxy 是 Knative Service Pod 中的一个 sidecar 容器。它负责收集指标并在将请求转发到用户容器时强制执行所需的并发。在必要时,它也可以像激活器一样充当队列。
Webhooks Knative Serving 拥有多个 webhook,负责验证和修改 Knative 资源。

网络层和入口

注意

这里的 Ingress (入口) 指的不是 Kubernetes Ingress 资源。它指的是将集群中的资源暴露给外部访问的概念。

Knative Serving 依赖于一个满足 Knative 网络规范的**网络层**。为此,Knative Serving 定义了一个内部 KIngress 资源,它充当了多种可插拔网络层的抽象。目前,社区提供了三种可用且受支持的网络层:

流量流和 DNS

注意

不同网络层之间存在细微差别,以下章节描述了通用概念。此外,还有多种方法可以公开您的 Ingress Gateway (入口网关) 并配置 DNS。更多信息请参阅安装文档。

Knative Serving Architecture Ingress

  • 每个网络层都有一个控制器,负责监视 KIngress 资源并相应地配置 Ingress Gateway。它还将通过此资源报告 status (状态) 信息。
  • Ingress Gateway 用于根据模式(代理/服务,请参阅 此处了解更多详细信息)将请求路由到 activator (激活器) 或直接路由到 Knative Service Pod。Ingress Gateway 处理来自集群内部和集群外部的请求。
  • 为了使 Ingress Gateway 在集群外部可访问,它必须使用 type: LoadBalancertype: NodePort 的 Kubernetes Service 来**公开**。社区支持的网络层将此作为安装的一部分。然后配置 **DNS** 指向 Ingress GatewayIPName

注意

请注意,如果您使用/设置 DNS,还应该为 Knative 设置相同的域名

自动扩缩

您可以在此处找到有关我们的自动伸缩机制的更详细信息:here

我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。