Supervisa

En esta página se explica cómo usar Stackdriver Monitoring para supervisar tus clústeres de Google Kubernetes Engine.

Descripción general

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

Stackdriver 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 tú mismo defines, como la cantidad total de sesiones de usuario activas o la cantidad de páginas procesadas.

Para las métricas del sistema, Stackdriver crea una implementación que se conecta de forma periódica a cada nodo y recopila métricas sobre sus pods y contenedores y, luego, las envía a Stackdriver.

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, se recopilan de memory.usage_in_bytes en cgroup
  • Memoria expulsable: container/memory/bytes_used, se recopila del campo total_inactive_file de memory.stat
  • Memoria no expulsable: se mide con memory.usage_in_bytes - memory.total_inactive_file
  • Disco: container/disk/bytes_used

Para obtener una lista de las otras métricas recopiladas en GKE, consulta la Lista de métricas en la documentación de Stackdriver.

Si deseas obtener más información sobre cómo configurar métricas personalizadas, consulta Usar métricas personalizadas en la documentación de Stackdriver o sigue el instructivo Ajuste de escala automático de 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

Habilitar Stackdriver Monitoring

Puedes crear un clúster nuevo con la supervisión habilitada o agregarla a un clúster existente.

Los grupos de nodos de tu clúster (incluidos los predeterminados) deben tener el alcance de GCP necesario para interactuar con Stackdriver Monitoring (el alcance https://www.googleapis.com/auth/monitoring). Cuando creas un clúster nuevo con supervisión, Kubernetes Engine configura automáticamente este alcance; sin embargo, es posible que los clústeres existentes no tengan los permisos necesarios.

Crear un clúster con supervisión

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

gcloud

Cuando creas un clúster, la marca --enable-cloud-monitoring se configura automáticamente, lo que habilita Stackdriver Monitoring en el clúster.

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

Console

  1. Ve al menú de Google Kubernetes Engine en GCP Console.

    Visitar el menú de Google Kubernetes Engine

  2. Haz clic en Crear clúster.

  3. Configura el clúster como quieras.

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

  5. Haz clic en Crear.

Habilitar la supervisión en un clúster existente

gcloud

Para habilitar la supervisión en un clúster existente, ejecuta el siguiente comando, en el cual [CLUSTER_NAME] es el nombre del clúster.

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

Si creaste un clúster sin supervisión y deseas habilitarla más adelante, es posible que los grupos de nodos del clúster no tengan el alcance de GCP necesario para interactuar con Stackdriver Monitoring. Como solución alternativa, puedes crear un grupo de nodos nuevo con la misma cantidad de nodos y el alcance necesario, para ello, ejecuta el siguiente comando:

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

Cuando crees el grupo de nodos nuevo, puedes transferir los pods existentes a este grupo nuevo y con el alcance necesario a fin de usar Stackdriver Monitoring. Para obtener más información, consulta “actualizar el alcance de la VM sin tiempo de inactividad”.

Console

Si creaste un clúster sin supervisión y deseas habilitarla más adelante, es posible que los grupos de nodos del clúster no tengan el alcance de GCP necesario para interactuar con Stackdriver Monitoring. Para obtener una solución alternativa, consulta la sección gcloud en primer lugar.

  1. Ve al menú de Google Kubernetes Engine en GCP Console.

    Visitar el menú de Google Kubernetes Engine

  2. Haz clic en el botón Editar del clúster, que tiene forma de lápiz.

  3. Habilita el valor Stackdriver Logging en la lista desplegable.

  4. Haz clic en Guardar.

Extender las métricas de la infraestructura

Además de las métricas de la aplicación, las métricas personalizadas de Stackdriver 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 de disco del contenedor. Puedes implementar tus propios agentes de supervisión de la infraestructura para recopilar y enviar estas métricas a Stackdriver.

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

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 estás usando 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 poder ver las métricas de tus contenedores en Stackdriver, 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 -
    

Revisar las métricas

Puedes ver las métricas en el menú de Stackdriver Monitoring de GCP Console.

Descripción general del clúster

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

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

  1. Visita el menú de Stackdriver Monitoring en GCP Console.

    Visitar el menú de Stackdriver Monitoring

  2. Desplaza el cursor sobre Recursos y selecciona GKE.

  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 Stackdriver Monitoring y la página de Monitoring Filters.

Paneles

Puedes crear paneles personalizados para contenedores y nodos de GKE.

Para crear un panel, sigue estos pasos:

  1. Visita el menú de Stackdriver Monitoring en GCP Console.

    Visitar el menú de Stackdriver Monitoring

  2. Desplaza el cursor sobre Paneles y 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 tipos de recursos y métricas, busca "instancia" o "contenedor" y selecciona las métricas que desees.

  6. En el campo Tipo de métricas, ingresa la métrica que desees o selecciónala en el menú de autocompletar.

  7. De manera opcional, usa el Filtro para filtrar según un valor específico, como app, nombre o versión.

  8. Configura el panel como desees. 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. Visita el menú de Stackdriver Monitoring en GCP Console.

    Visitar el menú de Stackdriver Monitoring

  2. Desplaza el cursor sobre Recursos y selecciona Explorador de métricas.

  3. En el menú de búsqueda Buscar tipos de recursos y métricas, ingresa gke_container en Tipo de recurso.

  4. En Métrica, selecciona la que desees.

  5. De manera opcional, usa el Filtro para filtrar por recurso.

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

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 la supervisión 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

Console

  1. Ve al menú de Google Kubernetes Engine en GCP Console.

    Visitar el menú de Google Kubernetes Engine

  2. Haz clic en el botón Editar del clúster, que tiene forma de lápiz.

  3. Inhabilita el valor Stackdriver Logging en la lista desplegable.

  4. Haz clic en Guardar.

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...