Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

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

By Felipe MartinezJul 18, 20243 min read

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

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!