更新时间:2024-09-29 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及以上版本的云原生监控插件,且部署模式需选择“本地数据存储”。
采集GPU指标
- 登录CCE控制台,单击集群名称进入集群,在左侧导航栏中选择“配置项与密钥”。
- 切换至“monitoring”命名空间,在“配置项”页签找到user-adapter-config配置项,并单击“更新”。
图1 更新配置项
- 在“配置数据”中单击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 设置自定义采集规则
- 重新部署monitoring命名空间下的custom-metrics-apiserver工作负载。
图3 重新部署custom-metrics-apiserver
- 重启后,可以通过以下指令查看对应的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}]}
创建弹性伸缩策略
- 单击左侧导航栏的“工作负载”,在目标工作负载的操作列中单击“弹性伸缩”。
- 策略类型选择“HPA+CronHPA策略”,并启用HPA策略。
您可在“自定义策略”中选择GPU监控参数创建弹性伸缩策略,示例如下。
图4 选择自定义指标
示例中以cce_gpu_memory_utilization(GPU显存使用率)作为伸缩指标,其余HPA参数的设置请根据实际需求进行设置,详情请参见创建HPA策略。
- 返回“策略”页面,查看HPA策略已创建成功。
图5 HPA策略创建成功