繁体   English   中英

HPA无法从Kubernetes中的Prometheus获取指标

[英]HPA not able to fetch metrics from Prometheus in Kubernetes

我有两个节点的Kubernetes集群,即一个主节点和两个工作节点。 为了进行监视,我部署了Prometheus和Grafana。 现在,我想根据CPU使用率自动缩放Pod。 但是即使配置了Grafana和Prometheus,我仍然收到以下错误-

Name:                                                  php-apache
Namespace:                                             default
Labels:                                                <none>
Annotations:                                           <none>
CreationTimestamp:                                     Mon, 17 Jun 2019 12:33:01 +0530
Reference:                                             Deployment/php-apache
Metrics:                                               ( current / target )
  resource cpu on pods  (as a percentage of request):  <unknown> / 50%
Min replicas:                                          1
Max replicas:                                          10
Deployment pods:                                       1 current / 0 desired
Conditions:
  Type           Status  Reason                   Message
  ----           ------  ------                   -------
  AbleToScale    True    SucceededGetScale        the HPA controller was able to get the target's current scale
  ScalingActive  False   FailedGetResourceMetric  the HPA was unable to compute the replica count: unable to get metrics for resource cpu: unable to fetch metrics from resource metrics API: the server could not find the requested resource (get pods.metrics.k8s.io)
Events:
  Type     Reason                   Age                      From                       Message
  ----     ------                   ----                     ----                       -------
  Warning  FailedGetResourceMetric  112s (x12408 over 2d4h)  horizontal-pod-autoscaler  unable to get metrics for resource cpu: unable to fetch metrics from resource metrics API: the server could not find the requested resource (get pods.metrics.k8s.io)

有人可以让我知道为什么Kubernetes不从Prometheus获取指标吗?

Kubernetes从metrics.k8s.io API(通常由metrics-server ,可以单独安装)或custom.metrics.k8s.io API(可以是任何类型的度量,通常由第三方提供)中custom.metrics.k8s.io度量。派对)。 要将HPA中的Prometheus用于kubernetes,需要安装用于自定义指标API的Prometheus适配器

可以在此处找到设置的演练。

您不需要自定义指标即可将HPA用于根据其CPU使用情况自动缩放Pod。

正如@ Blokje5前面提到的,您只需要安装'kube-state-metrics'。

最方便的方法是使用专用头盔图( kube-state-metrics )。

提示:将覆盖参数与'helm install'结合使用,以为'kube-state-metrics'Pod创建ServiceMonitor对象,以允许Prometheus发现用于刮取指标的新目标,例如:

helm install stable/kube-state-metrics --set prometheus.monitor.enabled=true

备注:请注意现有Prometheus资源对象/配置中定义的“ serviceMonitorSelector”,以使其与“ kube-state-metrics”的ServiceMonitor定义匹配。 这是为了在Prometheus控制台中提供Pods的指标。

现在不再使用heapster: https : //github.com/kubernetes-retired/heapster

要在群集上启用自动扩展,您可以使用HPA(水平吊舱自动扩展器),还可以安装指标服务器来检查所有指标。

要在kubernetes上安装指标服务器,您还可以遵循本指南:

amazon : https://docs.aws.amazon.com/eks/latest/userguide/metrics-server.html
https://github.com/kubernetes-incubator/metrics-server
https://medium.com/@cagri.ersen/kubernetes-metrics-server-installation-d93380de008

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM