Overview

Operator-SDK

在 Operator SDK 最新的版本 v0.19 中,operator SDK 在生成 golang operator 的时候直接调用了 kubebuilder 的 cli 代码,实际上就是用 kubebuilder 来生成,operator SDK 名存实亡

Kubebuilder

kubebuilder 是 k8s 社区官方提供的用来快速构建 controller 项目的工具,它主要用来

  1. 初始化 controller 项目结构,生成主要的代码文件,生成 config yarml, makefile 等
  2. 生成 k8s CRD API,同时生成 controller 代码

kubebuilder 生成的代码中使用了

kubebuilder 通过本地的 PROJECT 文件来管理项目的上下文

domain: zoumo.io
multigroup: true
repo: github.com/zoumo/orchestration
version: "2"

优势

controller runtime 相较原生的 kube controller manager 有以下优势

  1. 通过代码生成减少写重复的代码