Kubernetes 如何使用水平Pod Autoscaler根据子部署的资源利用率来缩放自定义资源(CR)?

Kubernetes 如何使用水平Pod Autoscaler根据子部署的资源利用率来缩放自定义资源(CR)?,kubernetes,kubernetes-operator,Kubernetes,Kubernetes Operator,我有一个管理部署的自定义资源。我希望我的HPA能够根据部署CPU利用率扩展CR副本计数,而不是直接扩展部署。如果它直接扩展部署,那么当触发协调器循环时,它将立即看到部署副本计数与CR中所述的所需副本计数之间的差异,并相应地更新部署 我很接近。我的CR量表终点功能正常,我的HPA甚至可以达到终点。它无法读取子级的资源使用情况 如果我让它直接扩展部署,我也可以让它工作,但正如我上面所说的,这不是一个可行的解决方案。更多的只是证明我的metrics服务器运行正常,并且可以获得资源利用率 HPA YAM

我有一个管理部署的自定义资源。我希望我的HPA能够根据部署CPU利用率扩展CR副本计数,而不是直接扩展部署。如果它直接扩展部署,那么当触发协调器循环时,它将立即看到部署副本计数与CR中所述的所需副本计数之间的差异,并相应地更新部署

我很接近。我的CR量表终点功能正常,我的HPA甚至可以达到终点。它无法读取子级的资源使用情况

如果我让它直接扩展部署,我也可以让它工作,但正如我上面所说的,这不是一个可行的解决方案。更多的只是证明我的metrics服务器运行正常,并且可以获得资源利用率

HPA YAML:

kind: HorizontalPodAutoscaler
metadata:
  name: {{.metadata.name}}
  namespace: {{.spec.namespace}}
spec:
  minReplicas: 1
  maxReplicas: 2
  metrics:
  - resource:
      name: cpu
      targetAverageUtilization: 2
    type: Resource
  scaleTargetRef:
    apiVersion: testcrds.group.test/v1alpha1
    kind: MyKind
    name: my-kind-1
并证明HPA至少能够达到CR的标度端点:

Name:                                                  my-hpa
Namespace:                                             default
Labels:                                                <none>
Annotations:                                           kubectl.kubernetes.io/last-applied-configuration:
                                                         {"kind":"HorizontalPodAutoscaler","apiVersion":"autoscaling/v2beta1","metadata":{"name":"my-kind-1","namespace":"default","creationTimestamp":n...
CreationTimestamp:                                     Wed, 21 Aug 2019 17:22:11 -0400
Reference:                                             MyKind/my-kind-1
Metrics:                                               ( current / target )
  resource cpu on pods  (as a percentage of request):  <unknown> / 2%
Min replicas:                                          1
Max replicas:                                          2
MLP pods:                                              0 current / 1 desired
Conditions:
  Type         Status  Reason            Message
  ----         ------  ------            -------
  AbleToScale  True    SucceededRescale  the HPA controller was able to update the target scale to 1
Events:
  Type    Reason             Age                   From                       Message
  ----    ------             ----                  ----                       -------
  Normal  SuccessfulRescale  3m54s (x80 over 23m)  horizontal-pod-autoscaler  New size: 1; reason: Current number of replicas below Spec.MinReplicas
名称:我的hpa
名称空间:默认值
标签:
注释:kubectl.kubernetes.io/last-applicated-configuration:
{“种类”:“HorizontalPodAutoscaler”,“apiVersion”:“autoscaling/v2beta1”,“元数据”:{“名称”:“my-kind-1”,“命名空间”:“默认”,“creationTimestamp”:n。。。
CreationTimestamp:2019年8月21日星期三17:22:11-0400
参考:MyKind/my-kind-1
指标:(当前/目标)
POD上的资源cpu(占请求的百分比):/2%
最小副本数:1
最大副本数:2
MLP吊舱:0当前/1所需
条件:
键入状态原因消息
----         ------  ------            -------
能够缩放真实成功缩放HPA控制器能够将目标缩放更新为1
活动:
从消息中键入原因年龄
----    ------             ----                  ----                       -------
正常成功重新缩放3m54s(x80超过23m)水平吊舱自动缩放器新大小:1;原因:当前副本数低于规格。最小副本数

可以看出,在检索资源利用率方面没有任何风险…

我终于找到了答案。我写了一篇简短的文章,因为有几个步骤需要遵循,请在文章中回答:

您是否部署了metrics服务器?