Kubernetes自动扩展其他自定义指标

时间:2019-09-18 18:36:41

标签: kubernetes

我想将自定义指标添加到我现有的cpu指标中,所以我想要两个指标。 我的第二个指标必须是自定义指标/外部指标,该指标向Web服务器发出请求并获得一个值,这可能吗?

目前看起来像这样,但是我想添加第二个指标,但是如何?

  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 80

正如我在docs中阅读的那样,kubernetes将使用更高的度量标准来确定。 有人为我提供了一个如何在我的案例中应用此自定义指标的示例吗?

1 个答案:

答案 0 :(得分:2)

如果它是一个外部指标(即与Kubernetes对象关联的的自定义指标):

 metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 80
  - type: External
    external:
      metric:
        name: your_metric
      target:
        type: Value
        value: "100"

请注意,在这种情况下,HPA将尝试从External Metrics API查询your_metric指标。这意味着该API必须存在于您的群集中,此配置才能起作用。

如果该度量标准与Kubernetes对象相关联,则可以使用type: Object;如果该度量标准来自尝试自动缩放的Pod控制器(例如Deployment)的Pod,则可以使用{ {1}}。在这两种情况下,HPA都会尝试从Custom Metrics API获取指标。


注意(因为您似乎正在尝试使用Kubernetes中尚未使用的指标):

HPA只能与以下度量标准API对话:Resource Metrics APICustom Metrics APIExternal Metrics API

如果这些API之一未提供您的指标,则您必须创建一个指标管道,以将指标带入这些API之一。

例如,使用PrometheusPrometheus Adapter

  • Prometheus定期从您的外部Web服务器中抓取指标
  • Prometheus适配器通过外部指标API公开指标

编辑:解释指标API。

在下图中,绿色组件是您需要安装以提供相应的度量标准API的组件。

Resource Metrics API

为群集中所有Pod和Node的CPU和内存使用情况指标提供服务。这些是预定义的指标(与其他两个API的自定义指标相反)。

度量标准的原始数据由cAdvisor收集,该数据作为每个节点上kubelet的一部分运行。指标由Metrics Server公开。

Metrics服务器实现Resource Metrics API。 Kubernetes中默认未安装它。这意味着,要在群集中启用Resource Metrics API,必须安装Metrics Server。

enter image description here

Custom Metrics API

提供与Kubernetes对象关联的自定义指标。指标可以是您想要的任何内容。

您有责任收集要通过Custom Metrics API公开的指标。您可以通过在集群中安装“指标管道”来实现此目的。

您可以自己为度量标准管道选择组件。唯一的要求是指标管道能够:

  1. 收集指标
  2. 实施自定义指标API

度量指标管道的一种流行选择是使用PrometheusPrometheus Adapter

  • Prometheus收集指标(您想要的任何指标)
  • Prometheus适配器实现“自定义指标” API并公开通过Prometheus通过“自定义指标” API收集的指标

enter image description here

External Metrics API

提供不与Kubernetes对象关联的自定义指标。

External Metrics API的工作方式与Custom Metrics API相同。唯一的区别是它具有不同的API路径(不包含对象,而仅包含度量标准名称)。

要提供外部指标API,在大多数情况下,您可以使用与自定义指标API相同的指标管道(例如Prometheus和Prometheus适配器)。

enter image description here