首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes HPA使用来自另一个部署的度量

Kubernetes HPA使用来自另一个部署的度量
EN

Stack Overflow用户
提问于 2020-06-08 12:58:13
回答 1查看 424关注 0票数 3

我目前正在尝试使用prometheus和prometheus适配器运行一个自动标度演示,我想知道是否有一种方法可以根据prometheus从另一个部署中提取的指标自动调整我的部署。

我现在拥有的是两个不同的部署,kafka -使用者应用程序(我想扩展)和kafka-出口商(它暴露了我将用于缩放的kafka度量标准)。我知道,如果我把它们作为容器在相同的部署中自动标度工作,但问题是卡夫卡出口商也会自动标度,这并不理想,所以我想把它们分开。我试过使用以下HPA,但我无法让它起作用:

代码语言:javascript
复制
kind: HorizontalPodAutoscaler
apiVersion: autoscaling/v2beta1
metadata:
  name: consumer-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: kafka-consumer-application
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: object
    object:
      target: kafka-exporter
      metricName: "kafka_consumergroup_lag"
      targetValue: 5

我不确定我是否做错了什么,或者这是不是我不能做的事情,所以任何建议都是值得赞赏的。

谢谢!

注意:我使用此配置运行适配器:

代码语言:javascript
复制
rules:
  default: false
  resource: {}
  custom:
    - seriesQuery: 'kafka_consumergroup_lag'
      resources:
        overrides:
          kubernetes_namespace: {resource: "namespace"}
          kubernetes_pod_name: {resource: "pod"}
      name:
       matches: "kafka_consumergroup_lag"
       as: "kafka_consumergroup_lag"
      metricsQuery: 'avg_over_time(kafka_consumergroup_lag{topic="my-topic",consumergroup="we-consume"}[1m])'
``
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-09 13:34:39

kubernetes文件中,您可以阅读:

对运行在Kubernetes上的Kubernetes对象应用程序不相关的度量进行自动标度,可能需要基于与Kubernetes集群中的任何对象没有明显关系的度量,例如描述与Kubernetes命名空间没有直接关联的托管服务的度量。在Kubernetes 1.10及更高版本中,您可以使用外部度量来解决这个用例

因此,使用外部度量,您的HPA yaml看起来可能如下所示:

代码语言:javascript
复制
kind: HorizontalPodAutoscaler
apiVersion: autoscaling/v2beta2
metadata:
  name: consumer-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: kafka-consumer-application
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: External
    external:
      metric:
        name: kafka_consumergroup_lag
        #selector:
        #  matchLabels:
        #    topic: "my-topic"
      target:
        type: AverageValue
        averageValue: 5

如果您有多个kafka出口商,您可以使用selector过滤它(来源):

选择器是用于给定度量的标准kubernetes标签选择器的字符串编码形式,当设置它时,它作为附加参数传递给度量服务器,以获得更具体的度量范围。当未设置时,只使用metricName来收集指标。

还请看一下这个堆栈问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62262647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档