我正在尝试在 kubernetes 环境中为我的 statefulset(用于 elasticsearch)设置 HPA。我计划使用 CPU 利用率来扩展 statefulset。我已经从 https://github.com/stefanprodan/k8s-prom-hpa/tree/master/metrics-server 创建了度量服务器。

我的 statefulset 的 HPA yaml 如下:

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: dz-es-cluster
spec:
  scaleTargetRef:
    apiVersion: extensions/v1beta1
    kind: StatefulSet
    name: dz-es-cluster
  minReplicas: 2
  maxReplicas: 3
  metrics:
  - type: Resource
    resource:
      name: cpu
      targetAverageUtilization: 80

但是在 hpa 中获取输出如下:
Conditions:
  Type         Status  Reason          Message
  ----         ------  ------          -------
  AbleToScale  False   FailedGetScale  the HPA controller was unable to get the target's current scale: the server could not find the requested resource
Events:
  Type     Reason          Age                From                       Message
  ----     ------          ----               ----                       -------
  Warning  FailedGetScale  1m (x71 over 36m)  horizontal-pod-autoscaler  the server could not find the requested resource

有人请帮助我..

最佳答案

kubernetes 1.9 中添加了对使用 HPA 自动缩放 statefulset 的支持,因此您的版本不支持它。在 kubernetes 1.9 之后,您可以使用以下方法自动缩放您的 statefulset:

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: YOUR_HPA_NAME
spec:
  maxReplicas: 3
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: StatefulSet
    name: YOUR_STATEFUL_SET_NAME
  targetCPUUtilizationPercentage: 80

请引用以下链接了解更多信息:

关于kubernetes - 在 kubernetes 中为 Statefulset 应用 HPA?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54663845/

10-11 08:31