Cloud Monitoring

En esta página, se explica cómo usar Cloud Monitoring para supervisar tus clústeres de Google Kubernetes Engine (GKE).

Resumen

Puedes usar Monitoring para supervisar las señales y compilar las operaciones en tus clústeres de GKE.

Cloud Monitoring supervisa las métricas del sistema y las métricas personalizadas. Las métricas del sistema son medidas de la infraestructura del clúster, como el uso de memoria o CPU. Las métricas personalizadas son métricas específicas de la aplicación que usted mismo define, como la cantidad total de sesiones de usuario activas o la cantidad de páginas renderizadas.

Para las métricas del sistema, Cloud Monitoring crea una implementación que se conecta periódicamente a cada nodo y recopila métricas sobre sus Pods y contenedores y, luego, envía las métricas a Monitoring.

Las métricas de uso de los recursos del sistema se recopilan de las siguientes fuentes:

  • CPU: container/cpu/usage_time
  • Memoria: container/memory/bytes_used, recopilada de memory.usage_in_bytes en cgroup
  • Memoria expulsable: container/memory/bytes_used, recopilada del campo total_inactive_file de memory.stat
  • Memoria no expulsable: Medida mediante memory.usage_in_bytes - memory.total_inactive_file
  • Disco: container/disk/bytes_used

Para obtener una lista de otras métricas del sistema recopiladas de GKE, consulta la Lista de métricas.

Si deseas obtener información sobre cómo configurar métricas personalizadas, consulta Usa métricas personalizadas o sigue el instructivo Realiza el ajuste de escala automático en implementaciones con métricas personalizadas.

Antes de comenzar

Sigue estos pasos a fin de prepararte para esta tarea:

  • Asegúrate de que habilitaste la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Asegúrate de que instalaste el SDK de Cloud.
  • Establece tu ID del proyecto predeterminado:
    gcloud config set project [PROJECT_ID]
  • Si trabajas con clústeres zonales, establece tu zona de procesamiento predeterminada:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Si trabajas con clústeres regionales, establece tu región de procesamiento predeterminada:
    gcloud config set compute/region [COMPUTE_REGION]
  • Actualiza gcloud a la versión más reciente:
    gcloud components update
  • Asegúrate de haber creado un lugar de trabajo. Consulta Administra lugares de trabajo para obtener más información.

Habilita Monitoring

Puedes crear un clúster con Monitoring habilitado o habilitar Monitoring en un clúster existente.

Los grupos de nodos de tu clúster (incluido el grupo de nodos predeterminado) deben tener el permiso de Google Cloud necesario para interactuar con Monitoring (el permiso https://www.googleapis.com/auth/monitoring). Cuando creas un clúster nuevo con Monitoring, GKE establece este permiso de forma automática. Sin embargo, es posible que los clústeres existentes no tengan los permisos necesarios.

Crea un clúster con Monitoring

gcloud

Cuando creas un clúster, la marca --enable-cloud-monitoring se establece de forma automática, lo que habilita Monitoring en el clúster.

Para inhabilitar este comportamiento predeterminado, establece la marca --no-enable-cloud-monitoring.

Console

  1. En Cloud Console, ve a la página Kubernetes Engine > Clústeres de Kubernetes:

    Ir a Clústeres de Kubernetes

  2. Haz clic en Crear clúster.

  3. Configura el clúster según sea necesario.

  4. Haz clic en Opciones avanzadas. Asegúrate de que la opción Habilitar el servicio de Stackdriver Monitoring esté seleccionada.

  5. Haz clic en Crear.

Habilitar la supervisión en un clúster existente

gcloud

Para habilitar Monitoring en un clúster existente, ejecuta el siguiente comando, en el que [CLUSTER_NAME] es el nombre del clúster.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service monitoring.googleapis.com

Si, en un principio, creaste tu clúster sin Monitoring y quieres habilitarlo más adelante, es posible que los grupos de nodos del clúster no tengan el permiso necesario de Google Cloud. Como solución alternativa, puedes crear un grupo de nodos nuevo con la misma cantidad de nodos y el permiso necesario como se muestra a continuación:

gcloud container node-pools create adjust-scope \
    --cluster [CLUSTER_NAME] \
    --num-nodes [NUM_NODES] \
    --scopes https://www.googleapis.com/auth/monitoring

Después de crear el grupo de nodos nuevo, mueve tus pods existentes a este grupo nuevo, que cuenta con el permiso necesario para usar Monitoring. Para obtener más información, consulta “Actualiza los permisos de la VM sin tiempo de inactividad”.

Console

Si, en un principio, creaste tu clúster sin Monitoring y quieres habilitarlo más adelante, es posible que los grupos de nodos del clúster no tengan el permiso necesario de Google Cloud. Consulta la sección gcloud anterior a esta para obtener una solución alternativa.

  1. En Cloud Console, ve a la página Kubernetes Engine > Clústeres de Kubernetes:

    Ir a Clústeres de Kubernetes

  2. Haz clic en Editar.

  3. Configura el valor del menú desplegable de Stackdriver Monitoring como Habilitado.

  4. Haz clic en Guardar.

Extiende las métricas de la infraestructura

Además de las métricas de la aplicación, las métricas personalizadas de Cloud Monitoring también pueden usar medidas de la infraestructura de tu clúster que no se incluye en las métricas del sistema, como la E/S del disco del contenedor. Puedes implementar tus propios agentes de supervisión de la infraestructura para recopilar y enviar estas métricas a Cloud Monitoring.

cAdvisor

Puedes recopilar métricas con cAdvisor, el agente de supervisión de código abierto que se usa en Kubernetes. Además, puedes usar prometheus-to-sd para enviar esas métricas a Cloud Monitoring.

Para ejecutar cAdvisor en tu clúster, sigue estos pasos:

  1. Clona cAdvisor:

    git clone https://github.com/google/cadvisor.git
    cd cadvisor
    
  2. Sigue las instrucciones de cAdvisor DaemonSet para instalar kustomize. Si usas Cloud Shell, ejecuta el siguiente comando:

    go get github.com/kubernetes-sigs/kustomize
    
  3. Crea el espacio de nombres de ejemplo de cAdvisor y DaemonSet, que exporta todas las métricas del contenedor:

    kustomize build deploy/kubernetes/overlays/examples | kubectl apply -f -
    

    Ahora deberías ver las métricas de Prometheus en Cloud Monitoring en el recurso gke_container.

  4. Sigue las instrucciones de personalización de cAdvisor a fin de modificar el ejemplo proporcionado para que se adapte a tus necesidades. Para aplicar los cambios, ejecuta el siguiente comando:

    kustomize build deploy/kubernetes/overlays/<my_custom_patches> | kubectl apply -f -
    

Cómo ver métricas

Puedes ver las métricas en Google Cloud Console.

Descripción general del clúster

Stackdriver Monitoring ofrece un menú de descripción general para GKE. En este menú, se recopila y se muestra información útil sobre tus clústeres en paneles de ayuda.

Para ver el menú de descripción general, sigue estos pasos:

  1. En Cloud Console, ve a Monitoring:

    Ir a Monitoring

  2. Coloca el cursor sobre Recursos y, luego, selecciona Kubernetes Engine.

  3. Selecciona tu clúster.

El menú de descripción general proporciona los siguientes paneles predeterminados:

  • Incidentes: Infracciones de las políticas de alertas.
  • Eventos: Lista cronológica de las anomalías, los incidentes, el ciclo de vida, las etiquetas, las políticas de IAM, las implementaciones, las notas, las actualizaciones del proveedor de servicios en la nube y las actualizaciones de administración de usuarios que ocurren en tus cuentas de la nube.
  • Uso de CPU: Muestra los porcentajes de uso de CPU por clúster.
  • E/S de disco: Muestra las tasas de E/S de disco por clúster en KB/s.
  • Tráfico de red: Muestra el tráfico de red por clúster en KB/s.
  • Pods: Lista de pods y nodos (instancias de VM de Compute Engine) en todos los espacios de nombres. Cuando se selecciona un pod o un nodo, se abre la descripción general de ese recurso.

Para obtener más información sobre cómo ver las métricas, consulta la documentación de Monitoring y la página Filtros de Monitoring.

Paneles

Puedes crear paneles personalizados para contenedores y nodos de GKE.

Para crear un panel, sigue estos pasos:

  1. En Cloud Console, ve a Monitoring:

    Ir a Monitoring

  2. Coloca el cursor sobre Paneles y, luego, selecciona Crear panel.

  3. Para crear un panel nuevo, haz clic en Agregar gráfico.

  4. En el campo Título, ingresa el nombre del panel.

  5. En el campo Buscar tipo de recurso y métrica, busca instance o container, luego selecciona las métricas que desees.

  6. En el campo Tipo de métrica, ingresa o selecciona en el menú de autocompletar las métricas que desees.

  7. También puedes usar el Filtro para filtrar por un valor específico, como app, nombre o versión.

  8. Configura el panel con más detalle si es necesario. Para crear el panel, haz clic en Guardar.

Explorador de métricas

El Explorador de métricas te permite seleccionar una métrica específica sobre tus clústeres y realizar varias agregaciones.

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

  1. En Cloud Console, ve a Monitoring:

    Ir a Monitoring

  2. Coloca el cursor sobre Recursos y, luego, selecciona Explorador de métricas.

  3. En el menú de búsqueda Buscar tipo de recurso y métrica, ingresa gke_container en Tipo de recurso.

  4. En Métrica, selecciona las métricas que desees.

  5. También puedes usar el Filtro para filtrar por recurso.

  6. Usa las opciones de Agregación para realizar una agregación.

Recomendaciones

  • Alertas: Puedes configurar políticas de alertas que te informen si ocurre algo sospechoso en tu clúster.

Inhabilitar la supervisión

gcloud

Para inhabilitar Monitoring en un clúster existente, ejecuta el siguiente comando, en el que [CLUSTER_NAME] es el nombre del clúster.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service none

Si ejecutas Kubernetes Engine Operations en tu clúster, debes inhabilitar la supervisión y el registro mediante gcloud beta para configurar las siguientes marcas en tu clúster:

gcloud beta container clusters update [CLUSTER_NAME] --logging-service none --monitoring-service none

Console

  1. En Cloud Console, ve a la página Kubernetes Engine > Clústeres de Kubernetes:

    Ir a Clústeres de Kubernetes

  2. Haz clic en Editar.

  3. Configura el valor del menú desplegable de Stackdriver Monitoring como Inhabilitado.

  4. Haz clic en Guardar.

Próximos pasos