我正在尝试使用自定义指标进行自动缩放设置。
当前,我有:
monitoring
名称空间中运行。custom-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
都存在于同一名称空间中?
答案 0 :(得分:1)
是的,要缩放的Deployment
应该与HorizontalPodAutoscaler
对象在同一名称空间中。
这里是Kubernetes documentation的摘录:
命名空间为名称提供了作用域。资源名称必须是 在名称空间内唯一,但在名称空间之间不唯一。
Namespace
对象的HorizontalPodAutoscaler
值是提供有关您要扩展的部署名称空间的信息的唯一方法。