文档首页/ 云容器引擎 CCE/ 最佳实践/ 云原生AI/ GPU节点实现自动弹性伸缩
更新时间:2026-03-10 GMT+08:00
分享

GPU节点实现自动弹性伸缩

当集群中GPU资源不足时,支持自动进行GPU节点的弹性伸缩。本文将指导您如何创建GPU节点的弹性伸缩策略。

前提条件

步骤一:节点池配置

  1. 登录CCE控制台,单击集群名称进入集群,在左侧导航栏中选择“节点管理”
  2. 单击“创建节点池”,创建一个GPU规格的节点池,操作详情请参见创建节点池
  3. 节点池创建完成后,单击“弹性伸缩”,在“伸缩对象”中将目标规格的“弹性伸缩”按钮开启,然后单击“确定”进行保存。

步骤二:创建GPU负载并自动扩容

  1. 使用以下YAML创建一个GPU负载。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: ac-test
      namespace: default
    spec:
      replicas: 1  # 副本数
      selector:  
        matchLabels:
          app: ac-test
      template:
        metadata:
          labels:  
            app: ac-test
        spec:
          restartPolicy: Always 
          containers:
            - name: container-1
              image: pytorch/pytorch:2.1.1-cuda12.1-cudnn8-devel
              imagePullPolicy: IfNotPresent
              command: ["/bin/bash", "-c"]
              args:
                - "while true; do nvidia-smi; sleep 10; done"  
              resources:
                requests:
                  cpu: 250m
                  memory: 512Mi
                  nvidia.com/gpu: 1  
                limits:
                  cpu: 250m
                  memory: 512Mi
                  nvidia.com/gpu: 1 
          # 节点亲和性:指定调度到目标GPU节点池(步骤一创建的节点池)
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                nodeSelectorTerms:
                  - matchExpressions:
                      - key: cce.cloud.com/cce-nodepool
                        operator: In
                        values:
                          - gpu-130-nodepool-67633  #GPU节点池名称

  2. 查看Pod和节点池Node,此时节点池无节点,Pod处于pending状态。

  3. 随后将触发节点池扩容。

  4. 扩容成功后,查看Pod和节点池Node,此时节点池新创出节点,Pod处于running状态。

步骤三:删除GPU负载并自动缩容

如果GPU负载需求的GPU资源降低,节点处于空闲状态,为节省资源,您可以设置节点自动缩容。

  1. 在集群的“配置中心 > 集群弹性伸缩配置 > 弹性缩容配置”中打开“开启弹性缩容”的开关,并根据需求设置节点缩容条件,详情请参见集群弹性伸缩配置
  2. 删除GPU负载后,空闲节点开始缩容。

  3. 查看节点缩容成功。

相关文档