Si administras Kubernetes, entender la salud y el rendimiento de tus clusters es clave. Por suerte, Google Kubernetes Engine (GKE) trae capacidades integradas para recopilar métricas valiosas desde cAdvisor y Kubelet, lo que te da visibilidad sobre tus workloads en contenedores. En este post vemos cómo aprovechar estas métricas en GKE para entender mejor lo que ocurre dentro de tu cluster.
¿Qué son las métricas de cAdvisor y Kubelet?
cAdvisor y Kubelet son componentes esenciales del ecosistema de Kubernetes. cAdvisor monitorea de forma continua el uso de recursos dentro de los contenedores: CPU, memoria y red. Kubelet, por su parte, gestiona el ciclo de vida de los contenedores dentro de un pod. Combinadas, las métricas de ambos componentes ofrecen una visión completa del consumo de recursos y el estado de los contenedores en tu cluster.
¿Por qué monitorear las métricas de cAdvisor/Kubelet con GKE?
Habilitar la recopilación de métricas de cAdvisor/Kubelet en GKE te da varias ventajas:
- Mayor visibilidad del cluster: obtienes una visión más detallada del uso de recursos en tus pods, lo que permite asignarlos y optimizarlos mejor.
- Mejor troubleshooting: identificas cuellos de botella o anomalías en tus workloads en contenedores y resuelves los problemas más rápido.
- Planificación proactiva de capacidad: analizas patrones históricos y actuales de uso para anticiparte a las necesidades futuras de escalado.
¿Es un servicio gestionado en GKE?
Hoy en día, ¡sí! A partir de la versión GKE 1.29.3-gke.1093000, ya puedes recolectar métricas de kubelet y cAdvisor de forma gestionada; basta con habilitarlo en un cluster que corra esa versión o una posterior.
¿Y qué pasa con versiones anteriores de Kubernetes?
Si todavía no estás en la versión GKE 1.29.3-gke.1093000, igual puedes recolectar esta métrica, pero tendrás que configurarlo manualmente.
Deberás habilitar el scraping en el objeto OperatorConfig incluyendo los campos collection.kubeletScraping.interval:
kubectl -n gmp-public edit operatorconfig config
apiVersion: monitoring.googleapis.com/v1
kind: OperatorConfig
metadata:
namespace: gmp-public
name: config
collection:
kubeletScraping:
interval: 30s
apiVersion: monitoring.googleapis.com/v1
kind: OperatorConfig
metadata:
namespace: gmp-public
name: config
collection:
kubeletScraping:
interval: 30s
Más detalles aquí.
Advertencia: Si ya estás enviando métricas de cAdvisor/Kubelet a Google Cloud Managed Service for Prometheus, debes detener esa ingesta antes de habilitar las métricas gestionadas de cAdvisor/Kubelet; de lo contrario, podrías terminar con métricas duplicadas o incorrectas.
Cómo activar las métricas gestionadas de cAdvisor/Kubelet en GKE
Esto es lo que necesitas saber:
- Compatibilidad: esta funcionalidad está disponible para clusters de GKE que ejecutan la versión 1.29.3-gke.109300 o posterior.
- Cómo habilitar la recopilación de métricas: puedes activar la recopilación de métricas de cAdvisor/Kubelet desde la consola de Google Cloud, la CLI de gcloud o Terraform. El proceso consiste en activar la API de Google Kubernetes Engine y seleccionar los componentes de cAdvisor/Kubelet que quieras monitorear. También puedes editar tu configuración de Cloud Monitoring e incluir las métricas de cAdvisor y kubelet.

GKE Edit Cloud Monitoring
- Visualización de métricas: una vez habilitadas, las métricas se recopilan a través de Google Cloud Managed Service for Prometheus y se pueden consultar con PromQL o MQL. Verás varios targets en el Metrics Explorer de Google Cloud.

Google Cloud Metrics Explorer
Una métrica especialmente útil es container_cpu_usage_seconds_total, que permite revisar el uso de CPU del contenedor para definir los requests y límites de CPU de manera adecuada sin recurrir a VPA como recomendador. Por ejemplo:

GCP Metrics explorer: container_cpu_usage_seconds_total
Aprovechar las métricas de cAdvisor/Kubelet en GKE te da una visión mucho más clara del uso de recursos de tu cluster. Con esos datos puedes optimizar el rendimiento, detectar problemas a tiempo y asegurar que tus aplicaciones en contenedores funcionen de forma eficiente. Y con las métricas gestionadas de cAdvisor y Kubelet en GKE, todo resulta mucho más sencillo.
Recursos:
https://cloud.google.com/stackdriver/docs/managed-prometheus/exporters/kubelet-cadvisor
https://github.com/google/cadvisor
https://cloud.google.com/kubernetes-engine/docs/release-notes-new-features#June_07_2024
https://cloud.google.com/stackdriver/docs/managed-prometheus
Si aún no conoces a DoiT International, te invitamos a descubrirnos. Nuestro equipo está listo para conocerte y entender tus necesidades de cloud engineering. Contamos exclusivamente con talento senior de Engineering y nos especializamos en consultoría avanzada de cloud, diseño de arquitecturas y asesoría de debugging. ¡Escríbenos y conversemos!