11.2 Knative Build运行机制

Knative Build提供了一种从源代码构建容器的可插拔模型,它以Google的容器构建服务为基础,构建包是可以插入此模型的构建方式之一。

注意

在本书编写之际,Knative Build经历了从诞生到废弃的历程,社区决定使用Tekton替换Build模块。因为Tekton相对于Knative来说比较独立,本书籍不打算针对它做太多介绍。此外,为保证本章节完整地体现Knative,作者决定仍然保留Knative Build部分。如果熟悉了Knative Build的原理机制,那么理解Tekton就是很容易的一件事了。

Knative Build在集群上运行,由Kubernetes自定义资源定义(CRD)实现,扩展了Kubernetes并利用现有的Kubernetes原语提供从源代码到在集群上构建容器的能力。例如,你可以编写一个使用Kubernetes资源的构建来从存储库获取源代码、构建容器镜像并运行该镜像。一个Build是指Knative中的一个自定义资源实例,允许你定义运行完成并可以提供状态的进程。例如,使用Knative Build来获取、构建和打包代码,该Knative会通知流程是否成功。

Knative Build的主要功能包括:

·一个Build可以包括多个步骤(step),其中每个步骤指定一个Builder。此处的步骤可以看作Kubernetes的init-container。

·Builder是一种用于完成任何任务的容器镜像,可能是流程中某个单一的步骤,也可能是整个流程本身。

·Build中的步骤允许被推到镜像仓库。

·BuildTemplate可用于定义可复用的模板。

Build中的source可以用于将数据挂载到Kubernetes卷中,它支持git代码库、任意容器镜像或者其他定制的云存储等。

使用Kubernetes Secrets可进行ServiceAccount身份验证。