扩展 Kubernetes
Kubernetes 采用高度可扩展的架构,支持通过自定义资源定义(CRD)、API 聚合、准入控制器、Operator、设备插件、网络插件(CNI)、存储插件(CSI)等方式扩展集群功能。这些机制允许用户定义新的 API 类型、扩展 API 服务器、实现自定义校验与自动化管理,集成专用硬件和外部系统。扩展时应保持声明式 API、一致的控制器模式、良好的可观测性,并确保兼容性和稳定性。
章节目录
Kubernetes 通过模块化的 API、控制器、Webhook 和调度器设计,实现了“可扩展而不修改”的架构哲学。本章系统介绍如何扩展 Kubernetes,使其支持自定义资源、自动化逻辑与智能调度。
Kubernetes 提供了 API 聚合层(APIService)和自定义资源定义(CRD)两种扩展机制,用于添加新的资源类型或集成外部 API 服务,是整个生态系统可扩展性的基础。
APIService 是 Kubernetes 的 API 聚合层机制,允许外部 API Server 注册到主 API Server 下,实现统一的 API 接口暴露。本文介绍其架构原理、注册方式与典型应用。
CRD 是 Kubernetes 最常用的扩展机制。通过定义自定义资源类型(Custom Resource),用户无需修改核心代码即可扩展 Kubernetes 的 API,实现领域特定的控制逻辑。
控制器是 Kubernetes 自动化的核心。Operator 模式将领域知识封装为控制循环,使系统能够自动维护期望状态。本文深入讲解控制循环原理、设计模式及其在云原生和 AI 场景中的实践。
介绍 Kubebuilder 的核心概念、设计原则、工作流程及最佳实践,帮助开发者快速上手使用 Kubebuilder 构建 Kubernetes 扩展。
介绍 Operator SDK 的核心概念、架构设计、安装配置、CLI 插件系统及开发工作流,帮助读者掌握使用 Operator SDK 构建 Kubernetes Operator 的方法与最佳实践。
深入了解 Kubernetes 准入控制器的工作原理、类型分类和配置方法,包括变更和验证准入控制的详细说明,以及各种内置准入控制器的功能介绍和推荐配置。
通过准入 Webhook 扩展 Kubernetes API 的请求处理逻辑,实现策略验证、默认值注入与动态审计。
ValidatingWebhook 扩展用于在资源创建、更新、删除等操作发生前对请求进行验证,以动态地实现策略控制、安全防护和合规审计。
介绍 Kubernetes MutatingAdmissionWebhook 的工作机制与应用实践,包括自动注入 Sidecar、动态默认值填充、资源标签修改等场景,帮助你掌握集群级动态变更的最佳实践。
介绍 Kubernetes 内建的声明式准入策略:ValidatingAdmissionPolicy(v1.30 GA)与 MutatingAdmissionPolicy(v1.36 GA)。涵盖策略/绑定/参数三件套、CEL 表达式可用变量、validationActions、matchConditions、变量组合、ApplyConfiguration 与 JSONPatch 两种变更方式、重调用策略、与 Webhook 的取舍及迁移建议。
对比 Kubernetes 上的三种策略执行路径:原生的 ValidatingAdmissionPolicy/MutatingAdmissionPolicy(CEL,无需 Webhook)、Kyverno(YAML/CEL 策略,含验证、变更、生成、清理与镜像校验)与 OPA Gatekeeper(Rego 约束模板,CNCF 毕业)。讲解策略即代码的工作流(审计模式、例外、报告、CI 预检)、Policy Reports API 以及按组织场景的选型建议。
介绍 Kubernetes 调度器的核心架构、工作流程与 Scheduler Framework 插件机制,理解如何通过可插拔框架扩展调度逻辑,实现 GPU、AI 等场景下的智能调度。
深入理解并实践 Kubernetes Scheduler Framework 插件开发,掌握自定义调度逻辑的编写、注册、调试与应用,为 AI 原生与 GPU 调度扩展打下基础。
DRA(Dynamic Resource Allocation)将“设备类资源”的分配从静态整数配额升级为可协商、可选择、可共享、可晚绑定的声明式流程,是 Kubernetes 面向 GPU/FPGA/SmartNIC 等异构硬件的核心演进方向。
深入理解 Kubernetes 在 GPU 与 AI 原生场景下的调度机制,涵盖 GPU 设备插件、MIG、多任务共享、AI 作业编排(KubeRay、Volcano、Kueue)及自定义调度插件实践。