kubernetes
resource_error
ai_generated
true
Error: failed to get cpu utilization: unable to get metrics for resource cpu: unable to fetch metrics from resource metrics API
ID: kubernetes/hpa-missing-metrics-server
85%Fix Rate
90%Confidence
1Evidence
2024-01-20First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| metrics-server v0.6.4 | active | — | — | — |
| Kubernetes v1.28.3 | active | — | — | — |
| Kubernetes v1.29.0 | active | — | — | — |
Root Cause
Horizontal Pod Autoscaler (HPA) cannot query CPU/metrics because the metrics-server is not deployed or is not functioning correctly.
generic中文
水平Pod自动缩放器(HPA)无法查询CPU/指标,因为metrics-server未部署或运行不正常。
Official Documentation
https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-metrics-apisWorkarounds
-
85% success Deploy metrics-server using the official manifest: `kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml`
Deploy metrics-server using the official manifest: `kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml`
-
80% success Check metrics-server pod logs: `kubectl logs -n kube-system deployment/metrics-server` and verify it can connect to kubelets. Common fix: add --kubelet-insecure-tls flag if using self-signed certs.
Check metrics-server pod logs: `kubectl logs -n kube-system deployment/metrics-server` and verify it can connect to kubelets. Common fix: add --kubelet-insecure-tls flag if using self-signed certs.
中文步骤
Deploy metrics-server using the official manifest: `kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml`
Check metrics-server pod logs: `kubectl logs -n kube-system deployment/metrics-server` and verify it can connect to kubelets. Common fix: add --kubelet-insecure-tls flag if using self-signed certs.
Dead Ends
Common approaches that don't work:
-
Install a custom Prometheus adapter instead of metrics-server
70% fail
HPA requires the resource metrics API, which is typically served by metrics-server. Prometheus adapter serves custom metrics, not resource metrics.
-
Set --horizontal-pod-autoscaler-use-rest-clients=false on kube-controller-manager
90% fail
This flag is deprecated and removed in recent Kubernetes versions (1.23+). It no longer affects HPA behavior.