Closed adr-arroyo closed 3 years ago
Isn't there anyone that can help me on this?
It seems quite likely that the answer here will be general to Kubernetes rather than specific to minikube.
That said, it seems unlikely, but is it possible that the metrics-server needs to be started first? I'm not quite sure how this is supposed to work. More likely that this is related to one of these issues, and may be indicative of a missing flag in either the controller or metrics server. There are some hints in these issues:
Please let me know what you discover!
I have the same issue. @adr-arroyo Did you find a solution?
Unluckily I haven't @marcphilipp
If you happen to find a solution, please post it here :)
You have to add the following clusterrolebinding
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: metrics-server
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:heapster
subjects:
- kind: ServiceAccount
name: default
namespace: kube-system
This is clearly a minikube bug
And the existing clusterrole system:heapster is outdated so that no stats of statefulsets or nodes are possible. So execute
kubectl delete clusterrole system:heapster
and instead add the following clusterrole
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: system:heapster
rules:
- apiGroups:
- ""
resources:
- events
- namespaces
- nodes
- pods
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources:
- deployments
- statefulsets
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- nodes/stats
verbs:
- get
Thank you for your contribution @eddytruyen
I will try to test it on my environment
Hi @adr-arroyo , did you setup metrics server in the cluster before running this test? Try this https://github.com/kubernetes-sigs/metrics-server#installation
I've tried a test on kind before and can confirm that it does not include metrics server, and has to be installed separately. I think this will also be the case with minikube as well
It seems quite likely that the answer here will be general to Kubernetes rather than specific to minikube.
That said, it seems unlikely, but is it possible that the metrics-server needs to be started first? I'm not quite sure how this is supposed to work. More likely that this is related to one of these issues, and may be indicative of a missing flag in either the controller or metrics server. There are some hints in these issues:
Please let me know what you discover!
I agree with thomas this seems to be a general kuberentes issue, If anyone find a root cause for this, please update and re-open this issue, but I think we can close this on minikube side for now.
Confirmed that it only works when you enable the module right after starting Minikube.
It happened to me today, even when attempting to use very basic stuff from Kubernetes' guide :
It kept showing the output of kubectl get hpa
as :
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
php-apache Deployment/php-apache <unknown>/50% 1 10 0 14
Since the logs were empty, I had to look into the describe option, that gave me :
Warning: autoscaling/v2beta2 HorizontalPodAutoscaler is deprecated in v1.23+, unavailable in v1.26+; use autoscaling/v2 HorizontalPodAutoscaler
Name: php-apache
Namespace: default
Labels: <none>
Annotations: <none>
CreationTimestamp: Fri, 20 Jan 2023 12:26:10 -0300
Reference: Deployment/php-apache
Metrics: ( current / target )
resource cpu on pods (as a percentage of request): <unknown> / 50%
Min replicas: 1
Max replicas: 10
Deployment pods: 1 current / 0 desired
Conditions:
Type Status Reason Message
---- ------ ------ -------
AbleToScale True SucceededGetScale the HPA controller was able to get the target's current scale
ScalingActive False FailedGetResourceMetric the HPA was unable to compute the replica count: failed to get cpu utilization: did not receive metrics for any ready pods
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedGetResourceMetric 60s horizontal-pod-autoscaler failed to get cpu utilization: unable to get metrics for resource cpu: no metrics returned from resource metrics API
Warning FailedComputeMetricsReplicas 60s horizontal-pod-autoscaler invalid metrics (1 invalid out of 1), first error is: failed to get cpu resource metric value: failed to get cpu utilization: unable to get metrics for resource cpu: no metrics returned from resource metrics API
Warning FailedGetResourceMetric 15s (x3 over 45s) horizontal-pod-autoscaler failed to get cpu utilization: did not receive metrics for any ready pods
Warning FailedComputeMetricsReplicas 15s (x3 over 45s) horizontal-pod-autoscaler invalid metrics (1 invalid out of 1), first error is: failed to get cpu resource metric value: failed to get cpu utilization: did not receive metrics for any ready pods
v1
.If you wanna reproduce it, I have tried some other yaml files (not related to hpa) before trying to use it. Something like 20-30 creations and deletions. After that I tried to enable the addon after finding a reference to it on the internet (there was nothing about it on the guide itself).
Okay :/ , just after sending this comment, I tried to create some objects and now nothing works at all, not even the example from the guide after restarting minikube.
Steps to reproduce the issue:
$ minikube start — extra-config=controller-manager.horizontal-pod-autoscaler-upscale-delay=1m — extra-config=controller-manager.horizontal-pod-autoscaler-downscale-delay=1m — extra-config=controller-manager.horizontal-pod-autoscaler-sync-period=10s — extra-config=controller-manager.horizontal-pod-autoscaler-downscale-stabilization=1m
$ minikube add-ons enable metrics-server
.yaml
with resource requests and limits:$ kubectl -n test-1 autoscale deployment orion --min=1 --max=5 --cpu-percent=50
Full output of failed command:
Command
$ kubectl -n test-1 describe hpa orion
returns:Command
$ minikube addons list
returns:As you may see in the commands output, even though it seems that the metrics server is working properly (metrics in hpa Orion say:
resource cpu on pods (as a percentage of request): 0%
), when it comes to the events produced by the Orion hpa there is an error regarding the computation of the metrics:What is the reason for this horizontal pod autoscaler not working properly?