Docker kubectl顶部节点“错误:指标尚不可用”。使用metrics服务器作为Heapster消除摩擦
Kubernetes无法找到metric server api。我正在Mac上与Docker一起使用Kubernetes。我试图从以下示例中执行HPA[。然而,当我执行命令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:
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