【发布时间】:2019-07-06 21:53:37
【问题描述】:
我正在尝试在 kubernetes 环境中为我的 statefulset(用于 elasticsearch)设置 HPA。我计划使用 cpu 利用率来扩展 statefulset。我已经从https://github.com/stefanprodan/k8s-prom-hpa/tree/master/metrics-server 创建了度量服务器。
我的有状态集的 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版本是“v1.8.15”
-
你能分享
kubectl top nodes的输出吗? -
@PrafullLadha,这些就是输出。
root@ip:~# kubectl top nodes NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% ip-***-20-32-***.ec2.internal 1454m 9% 18392Mi 28% ip-***-20-34-***.ec2.internal 2130m 13% 31761Mi 49% -
您的指标服务器运行良好。您是否在 statefulset.xml 中指定了
resources部分。这是 HPA 工作所需的部分。 kubernetes.io/docs/concepts/configuration/… -
我的 statefulset yaml 中有一个资源条目,CPU 限制设置为 1,请求设置为 0.25。是的,我的指标服务器运行良好。我通过自动缩放我的一个部署测试了它的工作。问题仅与 statefulset 相关。
标签: kubernetes autoscaling kubernetes-statefulset