Kantive 介绍
 Knative 提供了一种更高层次的抽象,简化并加速了在 Kubernetes 上构建、部署和管理应用的过程。它使得开发人员能够更专注于业务逻辑的实现,而将大部分基础设施和运维工作交给 Knative 去处理,从而显著提高生产力。
 组件
 knative-operator 运行组件如下。
 knative-operator   knative-operator-58f7d7db5c-7f6r5      1/1     Running     0     6m55s
knative-operator   operator-webhook-667dc67bc-qvrv4       1/1     Running     0     6m55s
  knative-serving 组件如下。
 knative-serving        3scale-kourier-gateway-d69fbfbd-bd8d8   1/1     Running     0                 7m13s
knative-serving        activator-7c6fddd698-wdlng              1/1     Running     0                 7m3s
knative-serving        autoscaler-8f4b876bb-kd25p              1/1     Running     0                 7m17s
knative-serving        autoscaler-hpa-5f7f74679c-vkc7p         1/1     Running     0                 7m15s
knative-serving        controller-789c896c46-tfvsv             1/1     Running     0                 7m17s
knative-serving        net-kourier-controller-7db578c889-7gd5l 1/1     Running     0                 7m14s
knative-serving        webhook-5c88b94c5-78x7m                 1/1     Running     0                 7m1s
knative-serving        storage-version-migration-serving-serving-1.12.2-t7zvd   0/1  Completed   0   7m15s
     | 组件 |  作用 |  
    | Activator |  对请求排队(如果一个 Knative Service 已经缩减到零)。调用 autoscaler,将缩减到 0 的服务恢复并转发排队的请求。Activator 还可以充当请求缓冲器,处理突发流量。 |  
  | Autoscaler |  Autoscaler 负责根据配置、指标和进入的请求来缩放 Knative 服务。 |  
  | Controller |  管理 Knative CR 的状态。它会监视多个对象,管理依赖资源的生命周期,并更新资源状态。 |  
  | Queue-Proxy |  Sidecar 容器,每个 Knative Service 都会注入一个。负责收集流量数据并报告给 Autoscaler,Autoscaler 根据这些数据和预设的规则来发起扩容或缩容请求。 |  
  | Webhooks |  Knative Serving 有几个 Webhooks 负责验证和变更 Knative 资源。 |  
  
 Ingress 流量入口方案
    | 方案 |  适用场景 |  
    | Istio |  如果已经用了 Istio,可以选择 Istio 作为流量入口方案。 |  
  | Contour |  如果集群中已经启用了 Contour,可以选择 Contour 作为流量入口方案。 |  
  | Kourier |  如果在没有上述 2 种 Ingress 组件时,可以使用 Knative 基于 Envoy 实现的 Kourier Ingress 作为流量入口。 |  
  
 Autoscaler 方案对比
    | Autoscaler 类型 |  是否为 Knative Serving 核心部分 |  默认启用 |  Scale to Zero 支持 |  基于 CPU 的 Autoscaling 支持 |  
    | Knative Pod Autoscaler (KPA) |  是 |  是 |  是 |  否 |  
  | Horizontal Pod Autoscaler (HPA) |  否 |  需安装 Knative Serving 后启用 |  否 |  是 |  
  
 CRD
    | 资源类型 |  API 名称 |  描述 |  
    | Services |  service.serving.knative.dev |  自动管理 Workload 的整个生命周期,控制其他对象的创建,确保应用具有 Routes、Configurations 以及每次更新时的新 revision。 |  
  | Routes |  route.serving.knative.dev |  将网络端点映射到一个或多个修订版本,支持流量分配和版本路由。 |  
  | Configurations |  configuration.serving.knative.dev |  维护部署的期望状态,提供代码和配置之间的分离,遵循 Twelve-Factor 应用程序方法论,修改配置会创建新的 revision。 |  
  | Revisions |  revision.serving.knative.dev |  每次对工作负载修改的时间点快照,是不可变对象,可根据流量自动扩容和缩容。 |