通过 helm 成功部署了 prometheus
$ helm install prometheus bitnami/kube-prometheus
但运行 kubectl top nodes 命令时却报错
$ kubectl top nodes
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get nodes.metrics.k8s.io)
请问如何解决?
发现2个 apiservice 出现 404 错误
$ kubectl get apiservice -n monitoring | grep False
v1beta1.custom.metrics.k8s.io monitoring/custom-metrics-apiserver False (ServiceNotFound)
v1beta1.metrics.k8s.io monitoring/prometheus-adapter False (ServiceNotFound)
删除这2个 apiservice 之后,kubectl top nodes 报错变成:
error: Metrics API not available
这个具体得看用装完metrics相关的资源具体报错了,第一个报错是因为metrics服务有问题NotFound,第二个自然是因为prometheus需要metrics来收集指标才能生效。
还是先helm全都装上,看下Metrics的svc跟pod是否正常吧,helm装的一般估计是少了点权限啥问题可能
@北方姆Q: 另外部署了 metrics-server,但是 metrics-server pod 启动不了,错误是
"Failed to scrape node" err="Get \"https://kube-n7-4c8g:10250/stats/summary?only_cpu_and_memory=true\": ...
"Failed probe" probe="metric-storage-ready" err="not metrics to serve"
@北方姆Q: 提供的博文很管用,command 中加入 --kubelet-preferred-address-types=InternalIP
与 --kubelet-insecure-tls
参数,metrics-server pod 就成功启动了,然后 kubectl top nodes
就正常输出了。
containers:
- args:
- --secure-port=8443
command:
- metrics-server
- --kubelet-preferred-address-types=InternalIP
- --kubelet-insecure-tls
最终采用的 helm 部署 metrics-server 的姿势
helm install metrics-server bitnami/metrics-server -n monitoring -f metrics-server-values.yaml
metrics-server-values.yaml
fullnameOverride: "metrics-server"
apiService:
create: true
extraArgs:
kubelet-preferred-address-types: InternalIP
kubelet-insecure-tls: true
通过 Kubernetes metrics | Error from server (ServiceUnavailable) | Quick 2 fixes 知道需要安装 metrics-server
– dudu 2年前