跳至内容

Knative Serving 架构

Knative Serving 由几个组件组成,这些组件构成了无服务器平台的支柱。本页介绍 Knative Serving 的高级架构。有关更多信息,请参阅 Knative Serving 概述请求流

图表

Knative Serving Architecture

组件

组件 职责
激活器 激活器是 **数据平面** 的一部分。它负责对传入请求进行排队(如果 Knative Service 已缩放到零)。它与自动伸缩器通信,以恢复缩放到零的服务并转发排队的请求。激活器还可以充当请求缓冲区,以处理流量突发。更多详细信息可以在这里找到 here
自动伸缩器 自动伸缩器负责根据配置、指标和传入请求来伸缩 Knative 服务。
控制器 控制器管理集群中 Knative 资源的状态。它监视多个对象,管理依赖资源的生命周期,并更新资源状态。
队列代理 队列代理是 Knative 服务 Pod 中的侧车容器。它负责收集指标并在将请求转发到用户的容器时执行所需的并发性。如果需要,它也可以充当队列,类似于激活器。
Webhook Knative Serving 有几个 Webhook 负责验证和修改 Knative 资源。

网络层和入口

注意

在本例中,入口 不指 Kubernetes 入口资源。它指的是对集群中资源公开外部访问的概念。

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

流量流和 DNS

注意

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

Knative Serving Architecture Ingress

  • 每个网络层都具有一个控制器,该控制器负责监视 KIngress 资源并相应地配置 入口网关。它还会通过此资源报告 状态 信息。
  • 入口网关 用于将请求路由到 激活器 或直接路由到 Knative 服务 Pod,具体取决于模式(代理/服务,有关更多详细信息,请参阅 here)。入口网关 处理来自集群内部和集群外部的请求。
  • 为了使 入口网关 在集群外部可访问,必须使用类型为 type: LoadBalancertype: NodePort 的 Kubernetes 服务将其 公开。社区支持的网络层将此作为安装的一部分包含在内。然后,将 DNS 配置为指向 入口网关IP名称

注意

请注意,如果您确实使用/设置了 DNS,则还应为 Knative 设置 相同域

自动伸缩

您可以在我们的自动伸缩机制中找到更多详细信息 here

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