本章主要介绍了 Kubebuilder的架构,其可以分为 CRD、Controller模块、KubebuilderScaffolds(脚手架)模块、Controller-runtime模块,同时介绍了这些模块之间如何互相协助,最终完成CRD的部署和运行。
在了解了 Kubebuilder的架构后,本章重点讲述了Kubebuilder的原理、CRD的创建过程,以及Client、Controller、Manager 等模块的初始化过程或者启动流程,通过对这些模块的深入学习,读者可以更快速地编写自定义的 CRD,并理解 Controller的工作原理。
Kubebuilder是基于 Controller-runtime使用 CRD构建 KubernetesAPI的 SDK,在讲述了 SDK的原理后,本章进一步解读了 Controller-runtime的原理,分别介绍了Manager的框架、Controller的运行机制、Client和 Cache 的初始化原理等,理解了这些模块的原理后,开发者可以更快地构建出 Controller,将第三方资源接入 Kubernetes中,从而体验声明式 API带来的便捷。
在了解了 Kubebuilder的使用方法、基本原理后,第 4 章将以具体的实例,为读者介绍如何开发 CRD和撰写 Controller。