AI Model Wiki

    Skip to main content
    22 min
    Lesson 3 of 4

    Resource Optimization and Operations

    From the course Kubernetes for AI Workloads

    Optimize resource utilization and operate AI workloads efficiently on Kubernetes.

    Cluster Autoscaling

    Node Autoscaler for GPU Nodes

    # Cluster Autoscaler configuration
    annotations:
      cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
    
    # Node pool configuration for GPU autoscaling
    nodePool:
      name: gpu-pool
      config:
        machineType: n1-standard-96
        accelerators:
        - acceleratorCount: 8
          acceleratorType: nvidia-tesla-a100
      autoscaling:
        enabled: true
        minNodeCount: 0  # Scale to zero when idle
        maxNodeCount: 32
    

    Job Scheduling Optimization

    Priority Classes

    # Production inference - highest priority
    apiVersion: scheduling.k8s.io/v1
    kind: PriorityClass
    metadata:
      name: inference-critical
    value: 1000000
    ---
    # Training - can be preempted
    apiVersion: scheduling.k8s.io/v1
    kind: PriorityClass
    metadata:
      name: training-batch
    value: 100
    preemptionPolicy: Never
    

    Resource Quotas

    apiVersion: v1
    kind: ResourceQuota
    metadata:
      name: gpu-quota
      namespace: ml-team
    spec:
      hard:
        requests.nvidia.com/gpu: "16"
        limits.nvidia.com/gpu: "32"
        requests.memory: "512Gi"
        limits.memory: "1Ti"
    

    Monitoring and Alerts

    # GPU utilization alert
    groups:
    - name: gpu-alerts
      rules:
      - alert: LowGPUUtilization
        expr: nvidia_gpu_duty_cycle < 50
        for: 30m
        annotations:
          summary: "GPU utilization below 50% for 30 minutes"
          description: "Consider scaling down or consolidating workloads"
    

    Cost Optimization Strategies

    • Use spot/preemptible nodes for training jobs (70% savings)
    • Scale GPU nodes to zero when no training workloads
    • Right-size GPU requests using historical data
    • Implement job queuing to maximize GPU utilization
    • Use time-sharing for development workloads

    Key Takeaways

    • •Cluster Autoscaler scales GPU nodes to zero when idle for significant cost savings
    • •Priority classes ensure inference workloads preempt training during peak demand
    • •Resource quotas prevent individual teams from monopolizing GPU resources
    • •Spot/preemptible nodes reduce training job costs by up to 70%
    0 of 4 lessons marked complete

    Progress is kept in this browser only.