Appearance
Kubernetes 进阶扩展导览
Kubernetes 的扩展能力不是一组必须安装的组件,而是几种不同的控制边界:扩展 API、持续调谐领域资源、改变入口或节点数据面、用 Git 管理期望状态,以及把底层能力组合成平台 API。选择扩展点之前,应先确认内置资源和更简单的模板工具是否已经足够。
扩展地图
| 需要解决的问题 | 合适的机制 | 主要风险 |
|---|---|---|
| 在 API、调度、节点或设备层扩展 | 扩展点与接口边界 | 同步阻断、节点故障域和版本兼容 |
| 定义结构化平台资源 | CRD | API 契约、版本转换、存储和权限 |
| 持续管理外部或有状态生命周期 | Operator | 重复副作用、最终状态、删除和并发 |
| 建立入口、网络与服务治理 | 流量工程 | 实现兼容、连接迁移、证书和排障层级 |
| 让 Git 成为期望来源并验证制品 | GitOps、策略与供应链 | 凭据、漂移、准入阻断和恢复来源 |
| 给开发者提供稳定自助能力 | 平台工程 | 抽象泄漏、租户边界和支持责任 |
CRD、模板和 Operator 的边界
| 方案 | 适合场景 | 不负责什么 |
|---|---|---|
| Helm/Kustomize | 渲染和组合一组相对固定的 Kubernetes 对象 | 不持续观察外部系统并修复状态 |
| CRD | 给平台意图提供结构化 API、校验、版本和 Status | CRD 本身没有业务控制逻辑 |
| Operator | 处理长期生命周期、外部副作用、升级、备份和恢复 | 不能掩盖没有定义清楚的领域状态机 |
| Aggregated API | 需要自定义存储、协议或更灵活 API 行为 | 运维成本高于普通 CRD |
如果问题只是复用 YAML,先用模板;如果需要一个稳定声明式接口,考虑 CRD;只有需要持续调谐和领域自动化时,才引入 Operator。
云原生扩展生态 保留横向选型总览;涉及具体数据路径、Conditions、故障证据和迁移步骤时,进入上表对应的机制页。
生产准入条件
任何进入 API 同步路径、节点数据面或外部资源生命周期的扩展,都应在上线前回答:
- 哪个用户问题必须由它解决,成功指标是什么。
- 它位于同步还是异步路径,故障会阻断哪些操作。
- CRD、Webhook、控制器和数据面如何升级,支持哪些版本。
- 状态、Events、指标和日志能否定位到明确控制环。
- 组件不可用、动作超时、状态回写冲突时是否可恢复。
- 谁负责值班、容量、证书、备份和依赖停止维护后的迁移。
- 如何双跑、停止切换并回到旧路径。
进阶视频 EP12–EP24 对应这些主题,完整链接见 Kubernetes 进阶视频系列。
