控制器和 Operator 模式
控制器和 Operator 模式
client-go
直接使用 client-go 的 Informer 机制,可自行灵活处理底层细节,就像 kube-controller-manager 那样
代码示例:controller-operator/client-go/simple
controller-runtime
controller-runtime 是专门开发 Kubernetes 控制器的 SDK 框架,在 Informer 之上提供了更高级别的抽象,包括 Client、 Cache、 Manager、 Controller、 Webhook、 Reconciler、 Source、 EventHandler、 Predicate 等功能模块
代码示例:controller-operator/controller-runtime/simple
Kubebuilder 或 Operator SDK
Kubebuilder 和 Operator SDK 都是社区中比较流行的用于生成 Operator 代码的脚手架工具,可以帮助开发者自动生成一些重复性的代码和资源定义,创建的项目都是使用 controller-runtime 框架
理解了 controller-runtime 框架,Kubebuilder 和 Operator SDK 就很容易上手
代码示例:controller-operator/kubebuilder/simple
微信公众号
更多内容请关注微信公众号:gopher云原生