社区Knative作为一款云原生、跨平台的Serverless编排引擎,您可以直接把社区Knative部署在ASK集群上,但这种方式需要付出额外的成本。ASK集成了Knative,您只需要拥有一个ASK集群并开通Knative功能,就可以基于Knative API使用云的能力。并且无需为Knative Controller付出任何成本。

ASK Knative优势

社区Knative ASK Knative
默认使用Istio作为Gateway,安装Istio的Controller需要额外支出部分IaaS成本。 无需为Knative Controller付出任何成本。
Knative自身的Controller部署,需要额外支出部分IaaS成本。
在ASK集群中创建一个Pod是有明显的冷启动时间,Knative的缩容到零机制可以很好的节省成本,但是第一批请求过来时有可能导致短暂的超时失败。 ASK Knative在没有流量的时候不把应用实例数缩容到零个,而是保留实例。通过低成本的保留实例来平衡成本和冷启动时长。保留实例的详细介绍请参见保留实例

Knative资源托管

ASK作为无服务器的Kubernetes集群,无需单独购买节点即可直接部署容器应用,是一种理想的Kubernetes使用方式。以下为Knative资源托管优势:
  • ASK上提供了Knative的托管服务,您可以通过Knative管理应用。
  • Knative可以在需要的时候自动从ASK中申请IaaS资源,此处laaS资源在ASK中指Pod。

Knative Serving Controller和阿里云容器服务进行了融合。您只需要拥有一个ASK集群并开通Knative功能就可以基于Knative API使用云的能力,并且无需为Knative Controller付出任何成本。

Knative Gateway

社区Knative默认支持Istio、Gloo、Contour、Kourier和Ambassador等多种Gateway实现方案。在这些实现方案中Istio使用频率最高。因为Istio除了可以充当Gateway的角色还能做为ServiceMesh服务使用。Serverless服务需要有Gateway实例常驻运行,而为了保证高可用至少要有两个实例互为备份。其次这些Gateway的Controller也需要常驻运行,这些常驻实例的IaaS费用和运维都是业务需要支付的成本。

为了极致的Serverless体验,通过阿里云SLB实现了Knative Gateway。Knative Gateway具备所有需要的功能并且属于云产品级别的支撑。不需要常驻资源,不仅节省了您的IaaS成本还省去了很多运维负担。

保留实例

社区Knative默认在没有流量时可以把应用实例缩容到零,但是缩容到零之后,从零到一的冷启动问题很难解决。冷启动除了要解决IaaS资源的分配、Kubernetes的调度、拉镜像等问题以外,还涉及到应用的启动时长。而应用镜像的大小以及应用启动时长与具体的开发者或者业务有很强的关联。

ASK的Knative和社区Knative不同点在于默认在没有流量的时候不把应用实例数缩容到零个,而是保留一个实例。以下为保留实例的策略:
  • 在业务波谷时使用突发性能实例替换标准的计算型实例,当第一个请求来临时再无缝切换到标准的计算型实例,从而降低流量低谷的成本。
  • 流量低谷时获得的CPU积分可以在业务高峰到来时使用,节约了使用成本。

保留实例的详细介绍请参见保留实例