假设我们在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
测试..。
2条答案
按热度按时间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
omtl5h9j2#
根据我的测试,我认为HPA使用“scaleTargetRef”来确定应该使用哪些POD指标,并从指标服务器中提取这些指标,并根据目标配置对它们进行评估。