0

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

我很接近。我的 CR 的规模端点正常运行,我的 HPA 甚至可以达到端点。它只是无法读取孩子的资源使用情况。

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

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

可以看出,在检索资源利用率方面没有骰子......

4

1 回答 1

1

我终于弄明白了。写了一篇简短的中篇文章,因为有几个步骤要遵循,在文章中回答: https ://medium.com/@thescott111/autoscaling-kubernetes-custom-resource-using-the-hpa-957d00bb7993

于 2019-08-23T17:02:39.283 回答