Horizo​​ntalPodAutoscaler-在另一个命名空间中进行规模部署

时间:2018-06-26 01:11:36

标签: kubernetes

我正在尝试使用自定义指标进行自动缩放设置。

当前,我有:

  • Prometheus Operatormonitoring名称空间中运行。
  • K8S Prometheus Adaptercustom-metrics命名空间中运行,并通过名为api的服务公开。
  • my-namespace名称空间中运行的部署。

我在HorizontalPodAutoscaler命名空间中添加了一个custom-metrics,以我的部署为目标。

YAML如下:

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: my-deployment-hpa
  namespace: custom-metrics
spec:
  maxReplicas: 10
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1beta2
    kind: Deployment
    name: my-deployment
  metrics:
  - type: Object
    object:
      metricName: queue_length
      targetValue: 1000
      target:
        apiVersion: extensions/v1beta1
        kind: Service
        name: api

当我通过HorizontalPodAutoscaler描述kubectl describe hpa my-deployment-hpa -n custom-metrics时,我看到AbleToScale: False是因为FailedGetScale the HPA controller was unable to get the target's current scale: deployments/scale.extensions "my-deployment" not found

Kubernetes是否希望自定义指标API,比例目标和HorizontalPodAutoscaler都存在于同一名称空间中?

1 个答案:

答案 0 :(得分:1)

是的,要缩放的Deployment应该与HorizontalPodAutoscaler对象在同一名称空间中。

这里是Kubernetes documentation的摘录:

  

命名空间为名称提供了作用域。资源名称必须是   在名称空间内唯一,但在名称空间之间不唯一。

Namespace对象的HorizontalPodAutoscaler值是提供有关您要扩展的部署名称空间的信息的唯一方法。