我可以使用一个应用程序的指标来自动扩展另一个应用程序吗?

Can I use metrics from one application to automatically scale a different one?

我目前在我的 kubernetes 集群中有一项服务 运行,它将我的指标导出到监控我的集群和服务的 prometheus。

我想使用此服务的指标来根据这些指标自动扩展 (hpa) 另一个服务。

这可以吗?

提前致谢!

我从未测试过您想做什么,但这里有一个关于如何使用自定义指标扩展广告连播的教程:https://docs.bitnami.com/kubernetes/how-to/configure-autoscaling-custom-metrics/

您可能需要做一些调整才能使用 pod 中的指标来缩放另一个,但我希望它能有所帮助。

要开始使用 custom HPA,您需要在集群上安装一些东西:

  1. 启用Kubernetes Aggregator Layer
  2. 开始使用 metrics-server(而不是 heapster);

我成功了!

您可以在一个参数中选择缩放目标,然后在指标部分下选择不同服务的目标。

示例 yaml

kind: HorizontalPodAutoscaler
apiVersion: autoscaling/v2beta1
metadata:
  name: my-app-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app
  minReplicas: 1
  maxReplicas: 5
  metrics:
  - type: Object
    object:
      target:
        kind: Service
        name: app-that-generates-metrics
      metricName: my-metric
      targetValue: 10