Skip to content

工作负载配置

本文档解释了如何使用Pod Annotation和WorkloadProfile自定义资源为AI应用分配vGPU资源。

添加 Pod 注释

在Pod metadata中可以添加以下注解。

注释参考

注释描述示例值
tensor-fusion.ai/gpupool指定目标 GPU 池default-pool
tensor-fusion.ai/inject-container要注入 GPU 资源的容器,可以是逗号分隔格式python
tensor-fusion.ai/replicas要创建的 GPU 工作副本数量'1'
tensor-fusion.ai/tflops-limit允许的最大 TFLOPS'20'
tensor-fusion.ai/tflops-request请求的 TFLOPS'10'
tensor-fusion.ai/vram-limit允许的最大 VRAM4Gi
tensor-fusion.ai/vram-request请求的 VRAM4Gi
tensor-fusion.ai/qos服务质量等级medium
tensor-fusion.ai/workload工作负载名称,如果指定,将重用预定义的 GPU 工作负载Worker,而不是生成新的pytorch-example
tensor-fusion.ai/generate-workload启用工作负载生成,与 workload 互斥'true'
tensor-fusion.ai/workload-profile引用 WorkloadProfile 以重用预定义参数default-profile

示例配置

yaml
kind: Deployment
apiVersion: apps/v1
metadata: {}
spec:
  template:
    metadata:
      labels:
        tensor-fusion.ai/enabled: "true"
      annotations:
        tensor-fusion.ai/gpupool: default-pool
        tensor-fusion.ai/inject-container: python # 如果多个容器使用 GPU,可以用逗号分隔 
        tensor-fusion.ai/replicas: '1' # GPU Worker的副本数量,大多数情况下与 Deployment 副本相同 
        tensor-fusion.ai/tflops-limit: '20'
        tensor-fusion.ai/tflops-request: '10'
        tensor-fusion.ai/vram-limit: 4Gi
        tensor-fusion.ai/vram-request: 4Gi
        tensor-fusion.ai/qos: medium
        tensor-fusion.ai/workload: pytorch-example
        tensor-fusion.ai/generate-workload: 'true'  # 如果设置为 false,将使用 tensor-fusion.ai/workload 的工作负载,而不是启动新的 GPU Worker 
        tensor-fusion.ai/workload-profile: default-profile # WorkloadProfile 优先级较低 
    spec: {}

配置 WorkloadProfile 自定义资源

如需使用自动扩缩容等高级功能,要创建一个WorkloadProfile并在 Pod Annotation中引用。

yaml
apiVersion: tensor-fusion.ai/v1
kind: WorkloadProfile
metadata:
  name: example-workload-profile
  namespace: 与您的工作负载相同的命名空间
spec:
  # 将Pod调度到和GPU Worker同一台GPU服务器提升性能
  isLocalGPU: true

  # 指定池名称(可选)
  poolName: default-pool

  # 指定 QoS 等级(默认为 medium)
  qos: medium
  
  # AI算力资源需求
  resources:
    requests:
      tflops: "5"
      vram: "3Gi"
    limits:
      tflops: "15"
      vram: "3Gi"
  
  # 自动扩缩容配置选项
  autoScaling: true
  minReplicas: 1
  maxReplicas: 5

然后在Pod Annotation中引用,若Annotation中存在相同配置,WorkloadProfile优先级较低:

yaml
tensor-fusion.ai/workload-profile: example-workload-profile

更多内容请参考WorkloadProfile详细配置选项