Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 如何使HPA基于另一个部署生成的度量来扩展部署_Kubernetes_Horizontal Scaling - Fatal编程技术网

Kubernetes 如何使HPA基于另一个部署生成的度量来扩展部署

Kubernetes 如何使HPA基于另一个部署生成的度量来扩展部署,kubernetes,horizontal-scaling,Kubernetes,Horizontal Scaling,我试图实现的是创建一个水平吊舱自动缩放器,它能够根据控制器吊舱生成的自定义指标缩放工人吊舱 我已经让普罗米修斯刮片、普罗米修斯Adapater、定制度量服务器全面运行,并使用由工人吊舱生产的定制度量我的控制器_度量扩展工人部署 现在,我的workerpod不再生成此指标,但控制器会生成此指标。 API autoscaling/v1似乎不支持此功能。如果需要,我可以使用autoscaling/v2beta1 API指定HPA 以下是我的HPA规格: apiVersion: autoscaling/

我试图实现的是创建一个水平吊舱自动缩放器,它能够根据
控制器
吊舱生成的自定义指标缩放
工人
吊舱

我已经让普罗米修斯刮片、普罗米修斯Adapater、定制度量服务器全面运行,并使用由
工人
吊舱生产的定制度量
我的控制器_度量
扩展
工人
部署

现在,我的
worker
pod不再生成此指标,但
控制器会生成此指标。
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”/api/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/v1beta1
放在
spec.metrics.object.target
下应该可以修复它

此外,关于HPA中更好的配置验证还有一个悬而未决的问题: