kubectl顶级节点显示错误:指标尚不可用

时间:2018-06-05 15:50:28

标签: kubernetes kubectl heapster

我正在使用Kubernetes 1.7并运行肝脏。我跑的时候

kubectl top nodes --heapster-namespace=kube-system

它告诉我

error: metrics not available yet

我也试过这个

kubectl top nodes --heapster-namespace=kube-system --heapster-service=heapster --heapster-scheme=http --heapster-port=12213

heapster正在运行,然后显示以下错误。

Error from server (ServiceUnavailable): the server is currently unable to handle the request (get services http:heapster:12213)

解决错误的任何线索?

1 个答案:

答案 0 :(得分:3)

这意味着没有正确配置heapster。

您需要确保heapster在kube-system命名空间上运行,并检查/healthz端点是否正常:

$ export HEAPSTER_POD=$(kubectl get po -l k8s-app=heapster -n kube-system -o jsonpath='{.items[*].metadata.name}')
$ export HEAPSTER_SERVICE=$(kubectl get service/heapster --namespace=kube-system -o jsonpath="{.spec.clusterIP}")
$ curl -L "http://${HEAPSTER_SERVICE}/healthz"
ok

然后,您可以检查指标API是否可用:

$ curl -L "http://${HEAPSTER_SERVICE}/api/v1/model/metrics/"
[
  "cpu/usage_rate",
  "memory/usage",
  "cpu/request",
  "cpu/limit",
  "memory/request",
  "memory/limit"
 ]

如果未如上返回,请查看容器日志中的错误:

$ kubectl logs -n kube-system ${HEAPSTER_POD} --all-containers


不过,请记住,Heapster是一个已弃用的项目,在最新的Kubernetes版本中运行它可能会遇到问题。

请参见Heapster Deprecation Timeline

| Kubernetes Release  | Action              | Policy/Support                                                                   |
|---------------------|---------------------|----------------------------------------------------------------------------------|
| Kubernetes 1.11     | Initial Deprecation | No new features or sinks are added.  Bugfixes may be made.                       |
| Kubernetes 1.12     | Setup Removal       | The optional to install Heapster via the Kubernetes setup script is removed.     |
| Kubernetes 1.13     | Removal             | No new bugfixes will be made.  Move to kubernetes-retired organization.          |

自Kubernetes v1.10起,kubectl top默认依赖于 metrics-server

CHANGELOG-1.10.md

  
      kubectl top命令中的
  • 支持指标API。 (#56206,@ brancz)
  •   
     

此PR实现了对kubectl top命令的支持,以使用   指标服务器作为聚合API,而不是请求指标   直接从heapster。如果metrics.k8s.io API未由   apiserver,那么仍然可以恢复到以前的行为。

最好使用kubectlv1.10或更高版本,因为它会从metrics-server获取指标。

但是,请注意kubectl Version Skew Policy

  

kubectl在以下版本的一个次要版本(旧版本或新版本)中受支持   kube-apiserver

在选择kube-apiserver版本之前,请先检查kubectl版本。