gpt4 book ai didi

kubernetes - 如何根据另一个部署产生的指标使 HPA 扩展部署

转载 作者:行者123 更新时间:2023-12-02 11:29:29 25 4
gpt4 key购买 nike

我想要实现的是创建一个能够扩展的 Horizo​​ntal Pod Autoscaler worker根据 controller 生成的自定义指标生成 Pod荚。

我已经让 Prometheus 抓取、Prometheus Adapter、Custom Metric Server 完全运行并扩展了 worker使用自定义指标进行部署 my_controller_metricworker 出品 pod 已经可以工作了。

现在我的 worker pod 不再产生这个指标,但 controller做。
API autoscaling/v1 似乎不支持此功能。如果需要,我可以使用 autoscaling/v2beta1 API 指定 HPA。

这是我对此 HPA 的规范:

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: my-worker-hpa
namespace: work
spec:
maxReplicas: 10
minReplicas: 1
scaleTargetRef:
apiVersion: extensions/v1beta1
kind: Deployment
name: my-worker-deployment
metrics:
- type: Object
object:
target:
kind: Deployment
name: my-controller-deployment
metricName: my_controller_metric
targetValue: 1

当使用 kubectl apply -f my-worker-hpa.yml 应用配置时我收到消息:
horizontalpodautoscaler "my-worker-hpa" configured

尽管此消息似乎没问题,但 HPA 不起作用。这个规范格式错误吗?

正如我所说,该指标可在自定义指标服务器中使用 kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1" | jq . | grep my_controller_metric .

这是来自 HPA 的错误消息:
Type           Status  Reason                 Message
---- ------ ------ -------
AbleToScale True SucceededGetScale the HPA controller was able to get the target's current scale
ScalingActive False FailedGetObjectMetric the HPA was unable to compute the replica count: unable to get metric my_controller_metric: Deployment on work my-controller-deployment/unable to fetch metrics from custom metrics API: the server could not find the metric my_controller_metric for deployments

谢谢!

最佳答案

在您的情况下,问题是 HPA 配置:spec.metrics.object.target还应指定 API 版本。
推杆 apiVersion: extensions/v1beta1spec.metrics.object.target应该修复它。

此外,还有一个关于 HPA 中更好的配置验证的未决问题:https://github.com/kubernetes/kubernetes/issues/60511

关于kubernetes - 如何根据另一个部署产生的指标使 HPA 扩展部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55413887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com