当我执行kubectl top pods/nodes
时,我得到以下错误:
度量尚不可用
当我检查日志时
$ kubectl logs metrics-server-7df4c4484d-h75wr -n kube-system -c metrics-server
I1008 12:02:55.159069 1 serving.go:273] Generated self-signed cert(apiserver.local.config/certificates/apiserver.crt, apiserver.local.config/certificates/apiserver.key)
[restful] 2018/10/08 12:02:56 log.go:33: [restful/swagger] listing is available at https://:443/swaggerapi
[restful] 2018/10/08 12:02:56 log.go:33: [restful/swagger] https://:443/swaggerui/ is mapped to folder /swagger-ui/
I1008 12:02:56.358063 1 serve.go:96] Serving securely on [::]:443
E1008 12:03:04.225519 1 reststorage.go:101] unable to fetch node metrics for node "hpa-test": no metrics known for node "hpa-test"
E1008 12:03:07.619489 1 reststorage.go:101] unable to fetch node metrics for node "hpa-test": no metrics known for node "hpa-test"
此外,我还可以从以下位置ping到hpa-test节点:
$ kubectl exec -it metrics-server-7df4c4484d-h75wr -n kube-system sh
此外,我已经尝试寻找解决方案无处不在,但没有解决这个问题
5条答案
按热度按时间ftf50wuq1#
有两种方法可以解决此问题:
1)使用heapster:安装heapster将允许 'kubectl top nodes' 开箱即用。但是heapster已被弃用,因此您可能应该切换到metrics-server。
2)使用指标服务器:不幸的是,在安装metrics-server时,它可能无法开箱即用......如果它不能,您需要更新用于安装的metrics-server-deployment.yaml(1.8+)文件的结尾,并添加一个命令节,其中包含正确的参数,如下所示:
然后简单地应用更改:
kubectl应用-f指标-服务器-部署.yaml
您应该能够通过
kubectl顶层节点
和
“/apis/metrics.k8s.io/v1beta1/nodes“中的所有数据都可以使用。
xghobddn2#
需要为指标服务器添加标志:
hyrbngr73#
如果度量已启用但未运行
如果未返回任何Pod,则可以通过运行以下命令部署最新版本的Metrics Server:
编辑
components.yaml
内容,在Deployment::spec::template::spec::containers::args
下添加- --kubelet-insecure-tls
、- /metrics-server
、imagePullPolicy: Always
第一次
e0bqpujr4#
编辑metrics-server的部署,并将以下内容添加到其容器的参数中。
例如,
smdncfj35#
出现这些问题的原因是您没有在集群中启用度量服务器
top命令仅在集群用户上安装了度量服务器时才运行
从git下载Kubernetes API中的指标服务器
步进:1
git clone https://github.com/kubernetes-incubator/metrics-server.git
步进:2
cd metrics-server/
步骤:3部署
Kubernetes 1.7 x一米二英寸
Kubernetes公司1.8
步骤:4检查度量服务器Pod的状态
**Step5:**现在将运行您的top命令