API 对象在 etcd 存储路径:

    • Group, Version, Resource

    image.png

    1. apiVersion: batch/v2alpha1 # Group/Version
    2. kind: CronJob # Resource
    3. ...
    • 核心对象直接在 /api 下
    • 非核心对象在 /apis 下

    image.png

    1. 向 API Server 发起请求
    2. 过滤, 授权, 超时, 审计
    3. MUX, Routes: 找到对应要创建的 Resource 类型
    4. 创建对应 Resource 对象
    5. Convert 工作: Super Version 版本管理
    6. Admission(), Validation (Admission Controller, Initializer)
    7. Encode 对象

    CRD允许用户在Kubernetes中添加—个跟Pod`Node类似的`新的API资源类型: 自定义API资源。

    CRD yaml:

    • 自定义 API 资源

    image.png

    使用自定义 API 资源:

    image.png