Monitorizar de forma proactiva con Cloud Monitoring


Si reaccionas a los problemas después de que se produzcan, puede haber tiempos de inactividad. Para mantener un sistema resistente en Google Kubernetes Engine (GKE), debes identificar los posibles problemas antes de que afecten a tus usuarios.

Usa esta página para monitorizar de forma proactiva tu entorno de GKE con Cloud Monitoring. Para ello, puedes hacer un seguimiento de los indicadores clave de rendimiento, visualizar tendencias y configurar alertas para detectar problemas como el aumento de las tasas de error o las limitaciones de recursos.

Esta información es importante para los administradores y operadores de la plataforma responsables de garantizar el estado, la fiabilidad y la eficiencia del entorno de GKE. También ayuda a los desarrolladores de aplicaciones a comprender el rendimiento de sus aplicaciones en condiciones reales, detectar regresiones en las implementaciones y obtener información valiosa para optimizar. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Roles y tareas comunes de usuario de GKE.

Consultar métricas útiles

GKE envía automáticamente un conjunto de métricas a Cloud Monitoring. En las siguientes secciones se enumeran algunas de las métricas más importantes para solucionar problemas:

Para ver una lista completa de las métricas de GKE, consulta Métricas del sistema de GKE.

Métricas de rendimiento y estado de los contenedores

Empieza con estas métricas cuando sospeches que hay un problema con una aplicación específica. Estas métricas te ayudan a monitorizar el estado de tu aplicación, por ejemplo, a descubrir si un contenedor se reinicia con frecuencia, se queda sin memoria o se limita por los límites de la CPU.

Métrica Descripción Importancia de la solución de problemas
kubernetes.io/container/cpu/limit_utilization La fracción del límite de CPU que se está usando en la instancia. Este valor puede ser superior a 1, ya que es posible que se permita que un contenedor supere su límite de CPU. Identifica la limitación de CPU. Los valores altos pueden provocar una degradación del rendimiento.
kubernetes.io/container/memory/limit_utilization La fracción del límite de memoria que se está usando en la instancia. Este valor no puede ser superior a 1. Monitoriza el riesgo de errores OutOfMemory (OOM).
kubernetes.io/container/memory/used_bytes Memoria real consumida por el contenedor en bytes. Monitoriza el consumo de memoria para identificar posibles fugas de memoria o riesgos de errores de falta de memoria.
kubernetes.io/container/memory/page_fault_count El número de fallos de página, desglosados por tipo: mayor y menor. Indica una presión de memoria significativa. Los fallos de página graves significan que se está leyendo memoria del disco (intercambio), aunque no se hayan alcanzado los límites de memoria.
kubernetes.io/container/restart_count El número de veces que el contenedor se ha reiniciado. Destaca los posibles problemas, como las aplicaciones que fallan, los errores de configuración o el agotamiento de los recursos, mediante un número elevado o creciente de reinicios.
kubernetes.io/container/ephemeral_storage/used_bytes El uso de almacenamiento efímero local en bytes. Monitoriza el uso del disco temporal para evitar que se expulsen pods debido a que el almacenamiento efímero esté lleno.
kubernetes.io/container/cpu/request_utilization La fracción de CPU solicitada que se está usando en la instancia. Puede usarse más de lo que se está solicitando, por lo que este valor puede ser superior a 1. Identifica las solicitudes de CPU con aprovisionamiento excesivo o insuficiente para ayudarte a optimizar la asignación de recursos.
kubernetes.io/container/memory/request_utilization La fracción de memoria solicitada que se está usando en la instancia. Puede usarse más de lo que se está solicitando, por lo que este valor puede ser superior a 1. Identifica las solicitudes de memoria aprovisionadas en exceso o en defecto para mejorar la programación y evitar errores de falta de memoria.

Métricas de rendimiento y estado de los nodos

Examina estas métricas cuando necesites diagnosticar problemas con la infraestructura de GKE subyacente. Estas métricas son cruciales para comprender el estado general y la capacidad de tus nodos, lo que te ayudará a investigar si un nodo no está en buen estado o está sometido a presión, o si tiene suficiente memoria para programar nuevos pods.

Métrica Descripción Importancia de la solución de problemas
kubernetes.io/node/cpu/allocatable_utilization La fracción de CPU asignable que se esté usando en la instancia. Indica si la suma del uso de los pods está agotando los recursos de CPU disponibles del nodo.
kubernetes.io/node/memory/allocatable_utilization La fracción de memoria asignable que se está usando en la instancia. No pueden utilizarse más bytes de memoria de los asignables, por lo que este valor no puede ser superior a 1. Indica que el nodo no tiene memoria para programar nuevos pods o para que funcionen los pods actuales, sobre todo cuando los valores son altos.
kubernetes.io/node/status_condition (BETA) Condición de un nodo a partir del campo de condición de estado del nodo. Informa sobre el estado de los nodos, como Ready, MemoryPressure o DiskPressure.
kubernetes.io/node/ephemeral_storage/used_bytes Los bytes de almacenamiento efímero local utilizados por el nodo. Ayuda a evitar errores de inicio o desalojos de pods proporcionando advertencias sobre el uso elevado del almacenamiento efímero.
kubernetes.io/node/ephemeral_storage/inodes_free Número de nodos de índice (inodes) libres en el almacenamiento efímero local. Monitoriza el número de inodos libres. Si te quedas sin inodos, las operaciones pueden detenerse aunque haya espacio en disco disponible.
kubernetes.io/node/interruption_count (BETA) Las interrupciones son desalojos del sistema de la infraestructura mientras el cliente tiene el control de esa infraestructura. Esta métrica es el recuento actual de interrupciones por tipo y motivo. Explica por qué un nodo puede desaparecer de forma inesperada debido a desalojos del sistema.

Métricas de rendimiento y estado de los pods

Estas métricas le ayudan a solucionar problemas relacionados con la interacción de un pod con su entorno, como la red y el almacenamiento. Usa estas métricas cuando necesites diagnosticar pods que tardan en iniciarse, investigar posibles problemas de conectividad de red o gestionar el almacenamiento de forma proactiva para evitar errores de escritura debido a volúmenes llenos.

Métrica Descripción Importancia de la solución de problemas
kubernetes.io/pod/network/received_bytes_count Número acumulativo de bytes que el pod ha recibido en la red. Identifica la actividad de red inusual (alta o baja) que puede indicar problemas de la aplicación o de la red.
kubernetes.io/pod/network/policy_event_count (BETA) Cambio en el número de eventos de políticas de red vistos en el plano de datos. Identifica los problemas de conectividad causados por las políticas de red.
kubernetes.io/pod/volume/utilization La fracción del volumen que está usando la instancia. No puede utilizarse más del total del espacio de volumen disponible, por lo que este valor no puede ser superior a 1. Permite gestionar de forma proactiva el espacio de volumen, ya que avisa cuando un uso elevado (cercano a 1) puede provocar errores de escritura.
kubernetes.io/pod/latencies/pod_first_ready (BETA) Latencia de inicio de extremo a extremo del pod (desde que se crea el pod hasta que está listo), incluidas las extracciones de imágenes. Diagnostica los pods que tardan en iniciarse.

Visualizar métricas con el explorador de métricas

Para visualizar el estado de tu entorno de GKE, crea gráficos basados en métricas con el explorador de métricas.

Para usar el explorador de métricas, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Explorador de métricas.

    Ir a Explorador de métricas

  2. En el campo Métricas, seleccione o introduzca la métrica que quiera inspeccionar.

  3. Consulta los resultados y observa las tendencias a lo largo del tiempo.

Por ejemplo, para investigar el consumo de memoria de los pods de un espacio de nombres específico, puedes hacer lo siguiente:

  1. En la lista Seleccionar una métrica, elija la métrica kubernetes.io/container/memory/used_bytes y haga clic en Aplicar.
  2. Haz clic en Añadir filtro y selecciona namespace_name.
  3. En la lista Valor, selecciona el espacio de nombres que quieras investigar.
  4. En el campo Agregación, selecciona Suma > pod_name y haz clic en Aceptar. Esta opción muestra una línea de serie temporal independiente para cada Pod.
  5. Haz clic en Guardar gráfico.

El gráfico resultante muestra el uso de memoria de cada pod a lo largo del tiempo, lo que puede ayudarte a identificar visualmente los pods con un consumo de memoria inusualmente alto o con picos.

El explorador de métricas ofrece una gran flexibilidad a la hora de crear las métricas que quieras ver. Para obtener más información sobre las opciones avanzadas del explorador de métricas, consulta el artículo Crear gráficos con el explorador de métricas de la documentación de Cloud Monitoring.

Crear alertas para detectar problemas de forma proactiva

Para recibir notificaciones cuando algo vaya mal o cuando las métricas superen determinados umbrales, configura políticas de alertas en Cloud Monitoring.

Por ejemplo, para configurar una política de alertas que te avise cuando el límite de CPU del contenedor supere el 80% durante cinco minutos, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página Alertas.

    Ir a Alertas

  2. Haz clic en Crear política.

  3. En el cuadro Seleccionar una métrica, filtre por CPU limit utilization y, a continuación, seleccione la siguiente métrica: kubernetes.io/container/cpu/limit_utilization.

  4. Haz clic en Aplicar.

  5. Deja en blanco el campo Añadir un filtro. Este ajuste activa una alerta cuando un clúster supera el umbral.

  6. En la sección Transformar datos, haga lo siguiente:

    1. En la lista Ventana de tiempo, selecciona 1 minuto. Este ajuste significa que Google Cloud calcula un valor medio cada minuto.
    2. En la lista Función de ventana móvil, selecciona media.

      Ambos ajustes calculan el promedio del uso del límite de CPU de cada contenedor cada minuto.

  7. Haz clic en Siguiente.

  8. En la sección Configurar alerta, haga lo siguiente:

    1. En Tipo de condición, selecciona Umbral.
    2. En Activador de alerta, selecciona Cualquier serie temporal infringe.
    3. En Posición del umbral, selecciona Por encima del umbral.
    4. En Valor de umbral, introduce 0.8. Este valor representa el umbral del 80% que quieres monitorizar.
    5. Haz clic en Advanced options (Opciones avanzadas).
    6. En la lista Ventana de repetición de pruebas, selecciona 5 min. Con este ajuste, la alerta se activará solo si el uso de la CPU supera el 80 % durante un periodo de cinco minutos seguidos, lo que reduce las falsas alarmas provocadas por picos breves.
    7. En el campo Nombre de la condición, asigna un nombre descriptivo a la condición.
    8. Haz clic en Siguiente.
  9. En la sección Configurar las notificaciones y finalizar la alerta, haga lo siguiente:

    1. En la lista Canales de notificación, selecciona el canal en el que quieras recibir la alerta. Si no tienes ningún canal, haz clic en Gestionar canales de notificaciones para crear uno.
    2. En el campo Dar nombre a la política de alertas, asigna a la política un nombre claro y descriptivo.
    3. Deja el resto de los campos con sus valores predeterminados.
    4. Haz clic en Siguiente.
  10. Revisa la política y, si todo está correcto, haz clic en Crear política.

Para obtener información sobre otras formas de crear alertas, consulta la descripción general de las alertas en la documentación de Cloud Monitoring.

Siguientes pasos