Kubernetes:kubectl顶部节点/荚不起作用

Mal*_* Br 5 docker kubernetes kubelet kubernetes-metrics

当我执行kubectl顶部吊舱/节点时,出现以下错误:

指标尚不可用

当我查看日志时

$ 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"
Run Code Online (Sandbox Code Playgroud)

另外,我还可以从以下位置ping到hpa-test节点:

$ kubectl exec -it  metrics-server-7df4c4484d-h75wr -n kube-system sh
Run Code Online (Sandbox Code Playgroud)

另外,我尝试到处寻找解决方案,但没有解决问题的方法

are*_*ier 6

有两种方法可以解决此问题:

1)使用heapster:安装heapster将允许'kubectl顶级节点'开箱即用。但是不推荐使用heapster,因此您可能应该切换到metrics-server。

2)使用metrics-server:不幸的是,在安装metrics-server时,它可能开箱即用。如果不这样做,则需要更新metrics-server-deployment.yaml(1.8+)的末尾用于安装的文件,并添加具有正确参数的命令部分,如下所示:

containers:
- name: metrics-server
  image: k8s.gcr.io/metrics-server-amd64:v0.3.1
  imagePullPolicy: Always
  volumeMounts:
  - name: tmp-dir
    mountPath: /tmp

  command:
      - /metrics-server
      - --kubelet-insecure-tls
      - --kubelet-preferred-address-types=InternalIP
Run Code Online (Sandbox Code Playgroud)

然后只需应用更改:

kubectl套用-fmetrics-server-deployment.yaml

然后,您应该能够获得结果

kubectl顶级节点

kubectl get --raw“ /apis/metrics.k8s.io/v1beta1/nodes”


Ars*_*kov 4

需要为指标服务器添加标志:

--kubelet-insecure-tls=true
--kubelet-port={YOU_KUBELET_PORT}
--kubelet-preferred-address-types=InternalIP
--v=5
--logtostderr
Run Code Online (Sandbox Code Playgroud)