开发者参考
Kubernetes 扩展资源定义
TensorFusion 在 API 组 tensor-fusion.ai 的 v1 版本下定义了 12 种自定义资源。本页说明每种资源的用途、通常由谁来写,以及字段参考在哪里。
资源之间的关系
- 资源层级:
TensorFusionCluster→GPUPool→GPUNode→GPU。集群和 GPU 池由你来写,节点和 GPU 由 Controller 和 Hypervisor 创建并更新。 - 节点供给:自行供给节点的
GPUPool会创建GPUNodeClaim,每个GPUNodeClaim按某个GPUNodeClass生成。 - 工作负载:
TensorFusionWorkload描述一个应用的 vGPU 资源,可以引用可复用的WorkloadProfile。TensorFusionConnection把一个客户端 Pod 和一个远程 worker 配对。 - 策略:
SchedulingConfigTemplate、GPUResourceQuota、ProviderConfig分别保存调度策略、命名空间配额和厂商相关配置。
基础设施资源
| Kind | 作用域 | 由谁写入 | 用途 | 字段参考 |
|---|---|---|---|---|
TensorFusionCluster | 集群级 | 管理员(Helm chart 会创建一个) | 最顶层的对象,包含各个 GPU 池和集群级的组件配置。 | TensorFusionCluster |
GPUPool | 集群级 | 管理员,通常写在 TensorFusionCluster.spec.gpuPools 里 | 一组 GPU 节点,共用容量、节点供给、超卖、QoS 定价和组件配置。 | GPUPool |
GPUNode | 集群级 | Controller | 一个 GPU 节点:容量、分配情况和所处阶段。 | GPUNode |
GPU | 集群级 | Hypervisor | 一张物理 GPU:型号、容量、可用资源和运行在上面的 Pod。 | GPU |
GPUNodeClass | 集群级 | 管理员 | 供给节点时使用的云主机模板:系统镜像、子网、安全组、磁盘、标签和 user data。 | GPUNodeClass |
GPUNodeClaim | 集群级 | Controller | 申请一个新节点:机型、可用区、容量类型,以及它将带来的算力、显存和 GPU 数量。 | CRD YAML |
策略与配置资源
| Kind | 作用域 | 由谁写入 | 用途 | 字段参考 |
|---|---|---|---|---|
SchedulingConfigTemplate | 集群级 | 管理员 | 放置策略、纵向伸缩规则、重平衡,以及 Hypervisor 的限流参数。由 GPU 池引用。 | SchedulingConfigTemplate |
GPUResourceQuota | 命名空间级 | 管理员 | 命名空间的总量上限(算力、显存、worker 数量),以及单个工作负载的上限和默认值。 | GPUResourceQuota |
ProviderConfig | 集群级 | 管理员(Helm chart 会创建 NVIDIA 的那一个) | 按厂商区分的配置:组件镜像、GPU 型号目录、分区模板,以及 TensorFusion 接管的原生资源名。 | CRD YAML |
工作负载资源
| Kind | 作用域 | 由谁写入 | 用途 | 字段参考 |
|---|---|---|---|---|
TensorFusionWorkload | 命名空间级 | 用户,或由 webhook 根据 Pod 注解创建 | 一个应用的 vGPU requests 和 limits、QoS、隔离模式和自动伸缩。 | TensorFusionWorkload |
WorkloadProfile | 命名空间级 | 用户或管理员 | 一组可复用的工作负载配置,工作负载和 Pod 注解可以按名称引用。 | WorkloadProfile |
TensorFusionConnection | 命名空间级 | Controller | 把一个客户端 Pod 绑定到一个远程 worker,并在 status 里给出 worker 的连接地址。 | TensorFusionConnection |
大多数用户不需要手写这些工作负载资源。给 Pod 加上工作负载注解就够了,其余的由 webhook 创建。
查看你所用版本的准确 schema
本站的字段参考页由 CRD 生成,可能落后于最新版本;GPUNodeClaim 和 ProviderConfig 目前还没有参考页。以集群里实际安装的 schema 为准:
# 列出所有资源
kubectl api-resources --api-group=tensor-fusion.ai
# 查看某个字段的类型和说明
kubectl explain gpupool.spec.capacityConfig
kubectl explain tensorfusionworkload.spec --recursive
# 导出某个 CRD 的完整 OpenAPI schema
kubectl get crd gpupools.tensor-fusion.ai -o yamlCRD 的源码在 tensor-fusion 仓库:Go 类型在 api/v1/,生成的 YAML 在 config/crd/bases/。
延伸阅读
- Helm chart 配置项
- TensorFusion DeepWiki:自动生成的代码库导读
TensorFusion 文档