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 | 每次对工作负载修改的时间点快照,是不可变对象,可根据流量自动扩容和缩容。 |