Metrics Server y kubectl top
Using the Metrics Server
¿Qué es el Metrics Server?
Es un componente central dentro del clúster que recopila métricas de consumo de recursos (CPU y Memoria) de los nodos y los pods.
-
No es un almacén histórico: Solo mantiene los datos en memoria a corto plazo (métricas en tiempo real). Si necesitas ver el histórico de hace una semana, usarías Prometheus; si necesitas saber qué está pasando ahora mismo, usas Metrics Server.
-
¿Cómo funciona? Cada nodo tiene un agente llamado
kubelet, el cual contiene un subcomponente llamado cAdvisor. cAdvisor lee el consumo de los contenedores directamente del kernel de Linux. El Metrics Server consulta a los kubelets constantemente, consolida esa información y la expone a través de la API de Kubernetes (metrics.k8s.io).
¿Para qué es estrictamente necesario?
Si no instalas el Metrics Server en tu clúster, perderás dos capacidades críticas:
-
El comando
kubectl topno funcionará: Te dará un error diciendo que la API de métricas no está disponible. -
El HPA (Horizontal Pod Autoscaler) quedará ciego: El HPA depende del Metrics Server para saber si un Pod superó su límite de CPU (ej. > 80%) y así decidir si debe crear más réplicas.
Instalación y el "Truco de Laboratorio"
En los exámenes de certificación (CKA/CKAD), el Metrics Server ya viene instalado en los clústeres donde se requiere. Sin embargo, para tus laboratorios locales (con kubeadm o Multipass), debes instalarlo tú mismo aplicando su manifiesto oficial:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
🚨 Problema típico en laboratorios (CrashLoopBackOff): En clústeres locales, el Metrics Server suele fallar al intentar validar los certificados del kubelet. Para arreglarlo, debes editar el Deployment del metrics-server (kubectl edit deploy metrics-server -n kube-system) y agregar este flag en la sección de argumentos del contenedor:
--kubelet-insecure-tls
Comandos de Supervivencia (Modo Examen ⏱️)
En el examen te pedirán a menudo que identifiques cuál es el nodo o el pod que está consumiendo más recursos. Usa estos comandos rápidos:
-
Ver el consumo de los Nodos:
-
Ver el consumo de todos los Pods en el namespace actual:
-
Ver el consumo de Pods en TODOS los namespaces:
-
Tip de Velocidad (El favorito del CKA): Ordenar resultados. Si te piden encontrar el pod que más CPU consume en un namespace específico, no leas la lista a mano, deja que Kubernetes lo haga por ti: