更新时间:2024-04-23 GMT+08:00
分享

基于GPU监控指标的弹性伸缩实践

集群中包含GPU节点时,可通过GPU指标查看节点GPU资源的使用情况,例如GPU利用率、显存使用量等。在获取GPU监控指标后,用户可根据应用的GPU指标配置弹性伸缩策略,在业务波动时自适应调整应用的副本数量。

前提条件

  • 目标集群已创建,且集群中包含GPU节点,并已运行GPU相关业务。
  • 在集群中安装CCE AI套件(NVIDIA GPU),且插件的metrics API正常工作。您可以登录GPU节点,执行以下命令进行检查:
    curl {Pod IP}:2112/metrics

    其中{Pod IP}是GPU插件的Pod IP,返回指标结果则为正常。

  • 在集群中安装3.9.5及以上版本的云原生监控插件,且部署模式需选择“Server模式”。

采集GPU指标

  1. 登录CCE控制台,单击集群名称进入集群,在左侧导航栏中选择“配置项与密钥”
  2. 切换至“monitoring”命名空间,在“配置项”页签找到user-adapter-config配置项,并单击“更新”

    图1 更新配置项

  3. “配置数据”中单击config.yaml对应的“编辑”按钮,在rules字段下添加自定义指标采集规则。修改完成后单击“确定”保存配置。

    如果您需要增加多个采集规则,可在rules字段下添加多个配置,关于采集规则配置详情请参见Metrics Discovery and Presentation Configuration

    针对cce_gpu_memory_utilization指标的自定义采集规则示例如下,更多GPU指标请参见监控GPU指标
    rules:
    - seriesQuery: '{__name__=~"cce_gpu_memory_utilization",container!="",namespace!="",pod!=""}'
      seriesFilters: []
      resources:
        overrides:
          namespace:
            resource: namespace
          pod:
            resource: pod
      metricsQuery: sum(last_over_time(<<.Series>>{<<.LabelMatchers>>}[1m])) by (<<.GroupBy>>)
    图2 设置自定义采集规则

  4. 重新部署monitoring命名空间下的custom-metrics-apiserver工作负载。

    图3 重新部署custom-metrics-apiserver

  5. 重启后,可以通过以下指令查看对应的Pod的指标是否正常(注意替换命名空间和业务Pod名)。

    # 查询指标
    $ kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1"
    
    {"kind":"APIResourceList","apiVersion":"v1","groupVersion":"custom.metrics.k8s.io/v1beta1","resources":[{"name":"pods/cce_gpu_memory_utilization","singularName":"","namespaced":true,"kind":"MetricValueList","verbs":["get"]},{"name":"namespaces/cce_gpu_memory_utilization","singularName":"","namespaced":false,"kind":"MetricValueList","verbs":["get"]}]}
    
    # 查询负载的对应指标值
    $ kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/default/pods/test-gpu-hpa-68667fdd94-grmd2/cce_gpu_memory_utilization"
    
    {"kind":"MetricValueList","apiVersion":"custom.metrics.k8s.io/v1beta1","metadata":{},"items":[{"describedObject":{"kind":"Pod","namespace":"default","name":"test-gpu-hpa-68667fdd94-grmd2","apiVersion":"/v1"},"metricName":"cce_gpu_memory_utilization","timestamp":"2024-01-10T08:36:44Z","value":"20","selector":null}]}

创建弹性伸缩策略

  1. 单击左侧导航栏的“工作负载”,在目标工作负载的操作列中单击“更多 > 弹性伸缩”
  2. 策略类型选择“HPA+CronHPA策略”,并启用HPA策略。

    您可在“自定义策略”中选择GPU监控参数创建弹性伸缩策略,示例如下。

    图4 选择自定义指标

    示例中以cce_gpu_memory_utilization(GPU显存使用率)作为伸缩指标,其余HPA参数的设置请根据实际需求进行设置,详情请参见HPA策略

  3. 返回“策略”页面,查看HPA策略已创建成功。

    图5 HPA策略创建成功

分享:

    相关文档

    相关产品