unable to retrieve the complete list of server APIs

2 min read | by Jordi Prats

While performing any action we might encounter the following error:

error: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request

This error is caused by the metrics server being down for some error, or in case it has been deleted. We can check the list of api services using kubectl get apiservice:

$ kubectl get apiservice
NAME                                   SERVICE                      AVAILABLE                  AGE
v1.                                    Local                        True                       133d
v1beta1.admissionregistration.k8s.io   Local                        True                       133d
v1.acme.cert-manager.io                Local                        True                       44h
v1.cert-manager.io                     Local                        True                       44h
v1beta1.metrics.k8s.io                 kube-system/metrics-server   False (MissingEndpoints)   133d

If we want to get rid of this error we can just removed the apiservice using kubectl delete apiservice as follows:

$ kubectl delete apiservice v1beta1.metrics.k8s.io
apiservice.apiregistration.k8s.io "v1beta1.metrics.k8s.io" deleted

Once the metrics server is fixed we can always add it back. It can also happen if you have installed a monitoring service such as prometheus and you have either dropped the entire namespace or there's a configuration issue that prevents it to start.

In my case I dropped the prometheus namespace without taking into consideration the service that was registered. Just bu removing the unavailable API service it fixed the issue

Posted on 03/05/2021