Saltar a contenido

Errores al usar kubectl top y métricas en Kubernetes causados por certificados expirados

Uno de los problemas más confusos al trabajar con métricas en Kubernetes aparece cuando comandos comunes como kubectl top pod dejan de funcionar repentinamente. O cuando tenemos configurado HPA no recoge el valor de CPU y Memoria. En este artículo explico un caso real usando MicroK8s, cómo identificar el problema y cómo solucionarlo renovando certificados expirados.


Síntomas

El primer indicio del problema aparece al ejecutar comandos relacionados con métricas:

kubectl top pod

Error:

Error from server (ServiceUnavailable): the server is currently unable to handle the request (get pods.metrics.k8s.io)

También pueden aparecer errores como:

couldn't get resource list for metrics.k8s.io/v1beta1: the server is currently unable to handle the request

Esto indica que el servidor de métricas (metrics-server) no está respondiendo correctamente.


Diagnóstico

El siguiente paso es revisar los logs del metrics-server:

kubectl logs deployment/metrics-server -n kube-system

En este caso, el error clave era:

Unable to authenticate the request err="[x509: certificate has expired or is not yet valid: current time 2026-03-02T12:58:28Z is after 2026-02-14T09:34:40Z]"

Este mensaje confirma claramente que un certificado ha expirado.


Verificación del estado de los certificados

Al tratarse de MicroK8s, podemos conectarnos al nodo control-plane y ejecutar:

sudo microk8s refresh-certs -c

Salida:

The CA certificate will expire in 3283 days.
The server certificate will expire in 364 days.
The front proxy client certificate will expire in -2 days.

Aquí vemos el problema:

The front proxy client certificate will expire in -2 days.

El certificado front-proxy-client está expirado.


Solución: Renovar el certificado expirado

Renovamos únicamente el certificado afectado, en este caso el front proxy client:

sudo microk8s refresh-certs -e front-proxy-client.crt

Reiniciar el metrics-server

En MicroK8s, es recomendable reiniciar el addon para asegurar que utiliza el nuevo certificado:

sudo microk8s disable metrics-server
sudo microk8s enable metrics-server

Notas

📣 Repetir la revisión y la renovación en todos los nodos del cluster.