Realiza una supervisión proactiva con Cloud Monitoring


Reaccionar a los problemas después de que ocurren puede generar tiempo de inactividad. Para mantener un sistema resiliente en Google Kubernetes Engine (GKE), debes identificar los posibles problemas antes de que afecten a tus usuarios.

Usa esta página para supervisar de forma proactiva tu entorno de GKE con Cloud Monitoring. Para ello, haz un seguimiento de los indicadores clave de rendimiento, visualiza las tendencias y configura alertas para detectar problemas, como el aumento de las tasas de error o las restricciones de recursos.

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

Revisa las 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 la solución de problemas:

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

Métricas de rendimiento y estado del contenedor

Comienza con estas métricas cuando sospeches que hay un problema con una app específica. Estas métricas te ayudan a supervisar el estado de tu app, lo que incluye descubrir si un contenedor se reinicia con frecuencia, se queda sin memoria o se limita debido a los límites de la CPU.

Métrica Descripción Importancia de la solución de problemas
kubernetes.io/container/cpu/limit_utilization La parte del límite de CPU que actualmente usa la instancia. Este valor puede ser superior a 1, ya que es posible que se permita que un contenedor exceda su límite de CPU. Identifica la limitación de la CPU. Los valores altos pueden provocar una degradación del rendimiento.
kubernetes.io/container/memory/limit_utilization La parte del límite de la memoria que actualmente usa la instancia. Este valor no puede ser superior a 1. Supervisa el riesgo de errores de memoria insuficiente (OOM).
kubernetes.io/container/memory/used_bytes Es la memoria real que consume el contenedor en bytes. Realiza un seguimiento del consumo de memoria para identificar posibles fugas de memoria o riesgo de errores OOM.
kubernetes.io/container/memory/page_fault_count Cantidad de fallas de página, desglosadas por tipo: principales y secundarias. Indica una presión de memoria significativa. Los errores de página graves significan que se está leyendo memoria del disco (intercambio), incluso si no se alcanzan los límites de memoria.
kubernetes.io/container/restart_count La cantidad de veces que se ha reiniciado el contenedor. Destaca los posibles problemas, como fallas en las apps, errores de configuración o agotamiento de recursos a través de una cantidad alta o en aumento de reinicios.
kubernetes.io/container/ephemeral_storage/used_bytes Uso de almacenamiento efímero local expresado en bytes. Supervisa el uso del disco temporal para evitar el desalojo de Pods debido al almacenamiento efímero completo.
kubernetes.io/container/cpu/request_utilization La parte de la CPU solicitada que está en uso en la instancia. Este valor puede ser superior a 1, puesto que el uso puede exceder la solicitud. Identifica las solicitudes de CPU con exceso o falta de aprovisionamiento para ayudarte a optimizar la asignación de recursos.
kubernetes.io/container/memory/request_utilization La parte de la memoria solicitada que está en uso en la instancia. Este valor puede ser superior a 1, puesto que el uso puede exceder la solicitud. Identifica las solicitudes de memoria con aprovisionamiento excesivo o insuficiente para mejorar la programación y evitar errores de OOM.

Métricas de rendimiento y estado del nodo

Examina estas métricas cuando necesites diagnosticar problemas con la infraestructura subyacente de GKE. Estas métricas son fundamentales para comprender el estado general y la capacidad de tus nodos, y te ayudan a investigar si un nodo no está en buen estado o está bajo 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 parte de la CPU asignable que está en uso en la instancia. Indica si la suma del uso de Pods está sobrecargando los recursos de CPU disponibles del nodo.
kubernetes.io/node/memory/allocatable_utilization La parte de la memoria asignable que está en uso en la instancia. Este valor no puede ser superior a 1, puesto que el uso no puede ser mayor que los bytes de memoria asignable. Sugiere que el nodo no tiene memoria para programar Pods nuevos o para que operen los Pods existentes, en especial cuando los valores son altos.
kubernetes.io/node/status_condition (BETA) Es la condición de un nodo del campo de condición de estado del nodo. Informa las condiciones de salud del nodo, como Ready, MemoryPressure o DiskPressure.
kubernetes.io/node/ephemeral_storage/used_bytes La cantidad de bytes del almacenamiento efímero local que usó el nodo. Ayuda a evitar fallas en el inicio o desalojos de Pods, ya que proporciona advertencias sobre el uso elevado del almacenamiento efímero.
kubernetes.io/node/ephemeral_storage/inodes_free Cantidad de nodos de índice (inodos) libres en el almacenamiento efímero local. Supervisa la cantidad de inodos libres. Quedarse sin inodos puede detener las operaciones incluso si hay espacio disponible en el disco.
kubernetes.io/node/interruption_count (BETA) Las interrupciones son desalojos del sistema de la infraestructura mientras el cliente tiene el control de ella. 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 del pod

Estas métricas te 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 se inician lentamente, investigar posibles problemas de conectividad de red o administrar el almacenamiento de forma proactiva para evitar errores de escritura debido a volúmenes completos.

Métrica Descripción Importancia de la solución de problemas
kubernetes.io/pod/network/received_bytes_count Cantidad acumulada de bytes que recibió el Pod a través de la red. Identifica la actividad de red inusual (alta o baja) que puede indicar problemas de la app o de la red.
kubernetes.io/pod/network/policy_event_count (BETA) Cambio en la cantidad de eventos de política de red que se observan en el plano de datos. Identifica los problemas de conectividad causados por las políticas de red.
kubernetes.io/pod/volume/utilization La parte del volumen que la instancia usa actualmente. Este valor no puede ser mayor que 1, puesto que el uso no puede superar la cantidad de espacio total disponible. Permite la administración proactiva del espacio de volumen, ya que advierte cuando un uso elevado (cercano a 1) podría generar fallas de escritura.
kubernetes.io/pod/latencies/pod_first_ready (BETA) Es la latencia de inicio de extremo a extremo del Pod (desde que el Pod está en estado "Creado" hasta que está en estado "Listo"), incluidas las extracciones de imágenes. Diagnostica los Pods que tardan en iniciarse.

Visualiza 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, completa los siguientes pasos:

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

    Ir al Explorador de métricas

  2. En el campo Métricas, selecciona o ingresa la métrica que deseas inspeccionar.

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

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

  1. En la lista Seleccionar una métrica, elige la métrica kubernetes.io/container/memory/used_bytes y haz clic en Aplicar.
  2. Haz clic en Agregar filtro y selecciona namespace_name.
  3. En la lista Valor, selecciona el espacio de nombres que deseas investigar.
  4. En el campo Agregación, selecciona Suma > pod_name y haz clic en Aceptar. Este parámetro de configuración muestra una línea de serie temporal separada para cada Pod.
  5. Haz clic en Guardar gráfico.

En el gráfico resultante, se 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 en aumento.

El Explorador de métricas ofrece una gran flexibilidad para crear las métricas que deseas ver. Para obtener más información sobre las opciones avanzadas del Explorador de métricas, consulta Crea gráficos con el Explorador de métricas en la documentación de Cloud Monitoring.

Crea alertas para la detección proactiva de problemas

Para recibir notificaciones cuando algo sale mal o cuando las métricas superan ciertos umbrales, configura políticas de alertas en Cloud Monitoring.

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

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

    Ve a las alertas

  2. Haz clic en Crear política.

  3. En el cuadro Seleccionar una métrica, filtra por CPU limit utilization y, luego, selecciona la siguiente métrica: kubernetes.io/container/cpu/limit_utilization.

  4. Haz clic en Aplicar.

  5. Deja en blanco el campo Agregar un filtro. Este parámetro de configuración activa una alerta cuando algún clúster incumple tu umbral.

  6. En la sección Transforma los datos, haz lo siguiente:

    1. En la lista Ventana progresiva, selecciona 1 minuto. Este parámetro de configuración significa que Google Cloud calcula un valor promedio cada minuto.
    2. En la lista Función de ventana progresiva, selecciona media.

      Ambos parámetros de configuración promedian el uso del límite de CPU para cada contenedor cada minuto.

  7. Haz clic en Siguiente.

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

    1. En Tipo de condición, selecciona Umbral.
    2. En Activador de alertas, selecciona Cualquier serie temporal es una infracción.
    3. En Posición del umbral, selecciona Umbral superior.
    4. En Valor del umbral, ingresa 0.8. Este valor representa el umbral del 80% que deseas supervisar.
    5. Haz clic en Opciones avanzadas.
    6. En la lista Período de nueva prueba, selecciona 5 min. Este parámetro de configuración significa que la alerta se activa solo si el uso de CPU se mantiene por encima del 80% durante un período continuo de cinco minutos, lo que reduce las falsas alarmas por picos breves.
    7. En el campo Nombre de la condición, asígnale un nombre descriptivo a la condición.
    8. Haz clic en Siguiente.
  9. En la sección Configurar las notificaciones y finalizar la alerta, haz lo siguiente:

    1. En la lista Canales de notificaciones, selecciona el canal en el que deseas recibir la alerta. Si no tienes un canal, haz clic en Administrar canales de notificaciones para crear uno.
    2. En el campo Asigna un nombre a la política de alertas, asígnale un nombre claro y descriptivo.
    3. Deja todos los otros campos con sus valores predeterminados.
    4. Haz clic en Siguiente.
  10. Revisa tu política y, si todo parece correcto, haz clic en Crear política.

Para obtener información sobre las formas adicionales en que puedes crear alertas, consulta Descripción general de las alertas en la documentación de Cloud Monitoring.

¿Qué sigue?