如果多个Pod具有相同的指标,Kubernetes HPA(HorizontalPodAutoscaler)如何确定应该使用哪个Pod的指标

gopyfrb3  于 2022-10-06  发布在  Kubernetes
关注(0)|答案(2)|浏览(191)

假设我们在demo命名空间中部署了下面的HPA(HorizontalPodAutoscaler),并且此demo命名空间中的多个Pod(POD-A、POD-B)具有相同的指标“istio_Requestsper_Second”,HPA如何确定应该使用Pod的指标“istio_Requestsper_Second”?或者,每个具有此指标的POD都将对照HPA目标进行评估?

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: httpbin
spec:
  minReplicas: 1
  maxReplicas: 5
  metrics:
  - type: Pods
    pods:
      metric:
        name: istio_requests_per_second
      target:
        type: AverageValue
        averageValue: "10"
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: httpbin

测试..。

pobjuy32

pobjuy321#

如果您使用的是普罗米修斯,那么适配器就是K8的Pod名称和要返回的度量值之间的关联。基本上,HPA正在向普罗米修斯适配器请求度量istio_requests_per_second。通过调用/apis/custom.metrics.k8s.io/v1beta1/namespaces/myNamespace/pods/mypod,适配器接受该请求,并查看针对其应该查询的内容配置的规则。

https://github.com/kubernetes-sigs/prometheus-adapter/blob/master/docs/config-walkthrough.md

omtl5h9j

omtl5h9j2#

根据我的测试,我认为HPA使用“scaleTargetRef”来确定应该使用哪些POD指标,并从指标服务器中提取这些指标,并根据目标配置对它们进行评估。

相关问题