llm-wiki wiki · sources 2026-06-14

原文:raw/kubebuilder-architecture-analysis.md · 仓库:https://github.com/kubernetes-sigs/kubebuilder · 优先级 P0

一句话定位

Kubebuilder 是构建 Kubernetes APIs using CRDs 的 SDK,把 API type、marker、controller-runtime manager、webhook、RBAC 和 manifests 生成流程标准化。

核心架构图

┌────────────────────────────────────────────────────────────────────────────┐
│ Operator author workflow                                                   │
│ kubebuilder init and create api define a project, API types, and           │
│ controllers.                                                               │
└────────────────────────────────────────────────────────────────────────────┘
                                       │
                                       ▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Scaffolded project                                                         │
│ Project layout, controller-runtime Manager, Reconciler, tests, and config  │
│ tree.                                                                      │
└────────────────────────────────────────────────────────────────────────────┘
                                       │
                                       ▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Generation toolchain                                                       │
│ controller-tools markers generate CRDs, RBAC, webhooks, deepcopy, and      │
│ manifests.                                                                 │
└────────────────────────────────────────────────────────────────────────────┘
                                       │
                                       ▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Output                                                                     │
│ Controller image and installable Kubernetes manifests for an operator.     │
└────────────────────────────────────────────────────────────────────────────┘

模块分层

层 / 模块 职责
CLI scaffolding init/create api/webhook
API markers kubebuilder validation/printcolumn/rbac
Project layout api/ controllers/ config/
Generation CRD/RBAC/webhook/deepcopy manifests

关键数据流

kubebuilder init
        │
        ▼
create api 生成 type/reconciler
        │
        ▼
开发 API marker 和 reconcile
        │
        ▼
controller-gen 生成 YAML
        │
        ▼
部署 controller manager

设计决策与哲学