Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Monitorea la salud de tu cluster con métricas de cAdvisor/Kubelet en GKE

Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.

By Felipe MartinezJul 18, 20243 min read

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.

PerfectScale™ for Kubernetes

Ready to optimize?

Get your free Kubernetes savings analysis

¿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.

Your cloud bill shouldn't be a mystery

Optimization, automation, expertise. In one platform.

¿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!