Knative概述
Knative是一款基于Kubernetes的Serverless框架。其目标是制定云原生、跨平台的Serverless编排标准。Knative通过整合容器构建(或者函数)、工作负载管理(动态扩缩)以及事件模型这三者来实现的这一Serverless标准。
Knative体系架构
在Knative体系架构下各个角色的协作关系。
上图来自于Knative开源技术文档,已采用知识共享署名 4.0 国际许可协议(CC-BY-4.0)进行许可。
Developers
Serverless服务的开发人员可以直接使用原生的Kubernetes API基于Knative部署Serverless服务。
Contributors
主要是指社区的贡献者。
Operators
Knative可以被集成到支持的环境中,例如,云厂商,或者企业内部。目前Knative是基于Kubernetes来实现的,有Kubernetes的地方就可以部署Knative。
Users
终端用户通过Istio网关访问服务,或者通过事件系统触发Knative中的Serverless服务。
Knative核心组件
作为一个通用的Serverless框架,Knative由两个核心组件组成:
Eventing:提供了事件的接入、触发等一整套事件管理的能力。
Eventing组件针对Serverless事件驱动模式做了一套完整的设计。包括外部事件源的接入、事件注册和订阅、以及对事件的过滤等功能。事件模型可以有效的解耦生产者和消费者的依赖关系。生产者可以在消费者启动之前产生事件,消费者也可以在生产者启动之前监听事件。
Serving:管理Serverless工作负载,提供了应用部署、多版本管理、基于请求的自动弹性、灰度发布等能力,而且在没有服务需要处理的时候可以缩容到零个实例。
Knative add-on组件
Knative支持第三方add-on组件。当前支持GitHub add-on组件,用于提供GitHub事件源支持。
Knative安装部署
如果您的集群版本小于Kubernetes 1.22,请先升级集群版本。
标准托管Kubernetes 、标准专有Kubernetes以及ACK Serverless集群支持部署Knative。部署方式如下:
在标准托管Kubernetes集群和标准专有Kubernetes集群中安装部署Knative,详细介绍请参见部署Knative。
在ACK Serverless集群中安装部署Knative,详细介绍请参见Knative组件管理。
Knative计费说明
Knative本身不收取管理费用,但在使用过程中所创建的云服务器、负载均衡实例、NAT网关等,按照相应资源的价格计费。
Knative交流群
如果您对于Knative有任何疑问,欢迎您点击链接提交申请加入组织。