Docker kubectl顶部节点“错误:指标尚不可用”。使用metrics服务器作为Heapster消除摩擦

Docker kubectl顶部节点“错误:指标尚不可用”。使用metrics服务器作为Heapster消除摩擦,docker,kubernetes,Docker,Kubernetes,Kubernetes无法找到metric server api。我正在Mac上与Docker一起使用Kubernetes。我试图从以下示例中执行HPA[。然而,当我执行命令kubectl get HPA,我的目标仍然未知。然后我尝试,kubectl descripe HPA。这给了我如下错误: Name: php-apache Namespace:

Kubernetes无法找到metric server api。我正在Mac上与Docker一起使用Kubernetes。我试图从以下示例中执行HPA[。然而,当我执行命令
kubectl get HPA
,我的目标仍然未知。然后我尝试,
kubectl descripe HPA
。这给了我如下错误:

  Name:                                                  php-apache
  Namespace:                                             default
  Labels:                                                <none>
  Annotations:                                           <none>
  CreationTimestamp:                                     Sun, 07 Oct 2018 12:36:31 -0700
  Reference:                                             Deployment/php-apache
  Metrics:                                               ( current / target )
    resource cpu on pods  (as a percentage of request):  <unknown> / 5%
  Min replicas:                                          1
  Max replicas:                                          10
  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: no metrics returned from resource metrics API
  Events:
    Type     Reason                        Age               From                       Message
    ----     ------                        ----              ----                       -------
    Warning  FailedComputeMetricsReplicas  1h (x34 over 5h)  horizontal-pod-autoscaler  failed to get cpu utilization: unable to get metrics for resource cpu: no metrics returned from resource metrics API
    Warning  FailedGetResourceMetric       1m (x42 over 5h)  horizontal-pod-autoscaler  unable to get metrics for resource cpu: no metrics returned from resource metrics API
解决方案(如果使用Minikube):

将Kubernetes的上下文更改为Minikube

在minikube中启用度量服务器并禁用heapster

minikube插件禁用heapster

minikube插件启用metrics服务器

使用以下步骤在群集中部署metrics服务器:

git克隆https://github.com/kubernetes-incubator/metrics-server.git

cd metrics服务器

kubectl create-f deploy/1.7/
(如果Kubernetes版本为1.7)

kubectl create-f deploy/1.8+/
(如果Kubernetes版本为1.8+)

启动
minikube dashboad
minikube服务[您的服务]

尝试
kubectl顶部节点


我发现这个()资源很有帮助。

我知道这是一个迟来的答案,但我自己也遇到了Docker Kubernetes和Autoscaler的一些问题,但没有在internet上找到一个好的答案。经过许多天的调试,我发现
metrics服务器
存在一些连接问题(无法连接到POD)

我在
metrics server
中关闭了TLS,它开始工作。如果其他人遇到同样的问题,我在这里回答了自己的帖子:


使用minikube 1.4.0时,无需执行任何操作,只需启动minikube。
kubectl top node/pod
应可立即运行。

在集群中使用以下命令来设置Metrics服务器:

kubectl apply -f https://raw.githubusercontent.com/pythianarora/total-practice/master/sample-kubernetes-code/metrics-server.yaml
这应该很好用


我关闭了metrics server中的TLS,之后它开始工作,因此我更新了YAML并重新发布。

运行此命令以创建
metrics server

kubectl应用-fhttps://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.2/components.yaml
然后重试此命令

kubectl顶部节点
您可以得到以下结果:

NAME          CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   

确保您正在Kubernetes群集上使用最新的metrics服务器。下面的命令对我有所帮助

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml


参考链接:

使用metrics server和minikube解决了这个问题。不过,如果将Kubernetes与Docker for Mac一起使用,这也是一个问题。请描述一下您的解决方案,作为这个问题的答案。这可能会对其他社区成员有所帮助。首先,我将Kubernetes的上下文更改为minikube。然后,我启用了metrics server和disabminikube中的led heapster。
minikube插件禁用metrics server
minikube插件启用metrics server
。我发现了这个()资源有用。不工作,请使用
kubectl create-fhttps://raw.githubusercontent.com/pythianarora/total-practice/master/sample-kubernetes-code/metrics-server.yaml
你好,丹尼斯,谢谢你指出错误。我也在原来的帖子中纠正了错误。
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml