本部分介绍了如何将一个或多个指标从 Pod 或工作负载发送到负载均衡器。
这些指标来自您正在运行的服务或应用。例如,请参阅 vLLM 引擎公开的指标。
然后,负载均衡器可以将此数据与基于利用率的负载均衡搭配使用,以更高效地平衡工作负载。例如,您可以使用此功能监控工作负载使用量较高的区域,然后允许负载均衡器将流量重定向到资源更充足的区域。在 vLLM 示例中,可用于跟踪利用率的指标是 gpu_cache_usage_perc
。
要求
Pod 的要求如下。
- 使用快速渠道提供的 GKE 1.34.1-gke.1127000 版或更高版本。
- 网关 API 已启用。
- 将Pod 横向自动扩缩与性能配置文件搭配使用。
指标的要求如下。
- 指标必须可通过 HTTP 端点访问。
- 指标的格式必须符合 Prometheus 标准。
负载平衡器对指标名称有限制。例如,名称不得超过 64 个字符。如需查看完整的限制列表,请参阅
BackendService
的 API 参考文档中有关字段backends[].customMetrics[].name
的详细信息。如果服务的指标不符合这些限制,您可以使用
exportName
字段重命名该指标。仅支持介于 0 到 1 之间的测量指标,其中 1 表示利用率为 100%。
系统会忽略指标标签,因此无法使用指标标签来区分指标。确保工作负载不会通过多个标签公开同一指标。
每个集群最多可公开 10 个指标。其他服务有自己的限制。例如,请参阅负载平衡器的限制和要求。 请注意,一个集群可以使用多个负载均衡器。
公开负载均衡的指标
选择要公开的指标。您可以选择服务器公开的任何指标,但该指标还必须满足上一部分中列出的要求。
添加以下自定义资源,替换特定于您的指标和 Pod 的详细信息。
apiVersion: autoscaling.gke.io/v1beta1 kind: AutoscalingMetric metadata: name: NAME namespace:NAMESPACE spec: selector: matchLabels: name: APP_LABEL_NAME endpoints: - port: METRIC_PORT path: METRIC_PATH metrics: - name: METRIC exportName: METRIC_NEW_NAME
替换以下内容以与您的工作负载相符:
NAME
:AutoscalingMetric 对象的名称。NAMESPACE
:Pod 所在的命名空间。APP_LABEL_NAME
:用于 Pod 的标签。METRIC_PORT
:端口号。METRIC_PATH
:指标的路径。验证您的服务或应用使用的路径;此路径通常为/metrics
。METRIC
:您要公开的指标的名称。可选:
METRIC_NEW_NAME
:您可以使用此字段重命名指标。如果指标名称不符合负载均衡器设置的名称限制,请使用此字段将其重命名为有效名称。如需查看完整的限制列表,请参阅
BackendService
的 API 参考文档中有关字段backends[].customMetrics[].name
的详细信息。
使用以下命令应用资源:
kubectl apply -f FILE_NAME.yaml
将
FILE_NAME
替换为相应 YAML 文件的名称。添加自定义资源后,指标会推送到自动扩缩 API。系统会每隔几秒读取一次该指标,并将其发送到负载平衡器。
如需公开第二个指标,请按照相同的步骤创建另一个自定义资源。
现在,您已向负载均衡器公开了指标,接下来可以配置负载均衡器以使用这些指标。如需了解详情,请参阅将负载均衡器配置为使用自定义指标。
如需详细了解如何使用负载均衡器,请参阅为 GKE 服务配置基于利用率的负载均衡。
排查向负载均衡器公开的指标
如需验证指标是否已正确向负载均衡器公开,您可以执行以下操作:
- 验证 GKE 指标代理中的日志。如果在尝试公开指标时出错,日志可能会表明存在错误。如需详细了解如何查找错误,请参阅排查系统指标问题。
- 您可以使用处于试运行模式的负载均衡器来查看其接收的所有指标。如需详细了解如何使用
dryRun
标志测试指标,请参阅将负载均衡器配置为使用自定义指标。
后续步骤
- 如需详细了解基于利用率的负载均衡,请参阅基于利用率的 GKE 服务负载平衡器简介。
- 了解如何为 GKE 服务配置基于利用率的负载均衡。