我正在使用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)
解决错误的任何线索?
答案 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 。
kubectl top
命令中的- 支持指标API。 (#56206,@ brancz)
此PR实现了对
kubectl top
命令的支持,以使用 指标服务器作为聚合API,而不是请求指标 直接从heapster。如果metrics.k8s.io
API未由 apiserver,那么仍然可以恢复到以前的行为。
最好使用kubectl
版v1.10
或更高版本,因为它会从metrics-server获取指标。
但是,请注意kubectl
Version Skew Policy:
kubectl
在以下版本的一个次要版本(旧版本或新版本)中受支持kube-apiserver
在选择kube-apiserver
版本之前,请先检查kubectl
版本。