1.1 Knative是什么

Knative的目的是在Kubernetes上提供一个简单、一致的层,以解决部署软件、连接异构系统、升级软件、观察软件、路由流量和自动扩/缩容的常见问题。该层在开发人员和平台之间创建了更牢固的边界,使开发人员可以专注于他们的业务逻辑。

• 主要子项目:Knative的主要子项目是服务模块和事件模块。服务模块负责主要服务应用的部署、升级、流量路由和扩/缩容。事件模块负责连接不同的系统。以这种方式划分职责可以使Knative社区更加独立和快速地发展。

• 软件架构:Knative的软件架构是基于Kubernetes运行的,是一组运行在容器中的进程组件。Knative的软件架构是基于Kubernetes自定义资源(CRD)实现的。服务模块和事件模块[1]都是基于自定义资源和自定义逻辑实现的,这都是平台开发工程师和平台运维工程师所关注的内容。开发人员只需关注是否安装了这些组件即可,不用关注具体的实现逻辑。

• API接口:Knative的API是表明开发者意图的YAML文件。这些YAML文件本质上都是Kubernetes的插件或者扩展方式,与其他Kubernetes的自定义资源相同。

你还可以使用Knative kn命令行工具来操作Knative,这对于调试和快速迭代很有用。在本书中,笔者将展示这两种方法。下面快速了解一下Knative的功能。