关于根据指标自动扩缩工作负载


本页面介绍了使用自定义、外部或 Prometheus 指标来自动增加或减少给定工作负载副本数量的方法。

为何根据指标进行自动扩缩

假设有一个从队列中提取任务并完成任务的应用。对于处理任务的时间或待处理任务的数量,应用可能有相应的服务等级目标 (SLO)。如果队列不断增长,则使用更多的工作负载副本可能会实现工作负载 SLO。如果队列为空或减少的速度超出预期,您可以通过运行较少的副本来节省费用,同时仍能实现工作负载的 SLO。

关于自定义指标、Prometheus 和外部指标

您可以根据自定义指标、Prometheus 或外部指标扩缩工作负载。

自定义指标是通过在 Kubernetes 中运行的应用报告的。如需了解详情,请参阅自定义指标和 Prometheus 指标

来自 Managed Service for Prometheus 的指标被视为自定义指标类型。

外部指标是通过未在您的集群上运行(但其性能会影响您的 Kubernetes 应用)的应用或服务报告的。例如,您可以自动扩缩 Cloud Monitoring 中的任何指标,包括 Pub/Sub 或 Dataflow。Prometheus 指标包含集群中被省略的数据,您可以使用这些数据进行自动扩缩。如需了解详情,请参阅外部指标

自定义指标和 Prometheus 指标

我们建议您使用 Managed Service for Prometheus 创建和管理自定义指标。您可以使用 Prometheus 查询语言 (PromQL) 来查询 Monitoring 中的所有指标。如需了解详情,请参阅 Managed Service for Prometheus 的横向 Pod 自动扩缩功能

您的应用可以向 Monitoring 报告自定义指标。您可以将 Kubernetes 配置为对这些指标做出响应并自动扩缩工作负载。例如,您可以根据指标(例如每秒查询次数、每秒写入次数、网络性能、与其他应用通信的延迟时间或其他适合工作负载的指标)来扩缩应用。如需了解详情,请参阅根据指标优化 Pod 自动扩缩

外部指标

如果您需要根据 Kubernetes 之外的应用或服务的性能来扩缩工作负载,可以配置外部指标。例如,如果未发送的消息数量呈上升趋势,您可能需要增加应用从 Pub/Sub 中提取消息的容量。外部应用需要将指标导出到集群可以访问的 Monitoring 实例。随着时间的推移,每个指标的趋势都会导致横向 Pod 自动扩缩器自动更改工作负载中的副本数。如需了解详情,请参阅根据指标优化 Pod 自动扩缩

将指标导入 Monitoring

如需将指标导入 Monitoring,您可以执行以下操作之一:

后续步骤