Configurar la monitorización automática de aplicaciones para cargas de trabajo


Puedes ahorrar tiempo y esfuerzo al configurar y mantener aplicaciones de monitorización que se ejecutan en Google Kubernetes Engine (GKE) si habilitas la monitorización automática de aplicaciones para las cargas de trabajo compatibles.

Cómo funciona la monitorización automática de aplicaciones

Cuando habilitas la monitorización automática de aplicaciones, GKE detecta las instancias desplegadas de las cargas de trabajo admitidas y despliega recursos PodMonitoring para cada instancia de carga de trabajo detectada.

La monitorización automática de aplicaciones también instala paneles de control listos para usar para monitorizar aplicaciones. Las métricas las recoge Google Cloud Managed Service para Prometheus.

Cargas de trabajo admitidas

La monitorización automática de aplicaciones admite las siguientes cargas de trabajo:

El intervalo de raspado de métricas de los servidores de modelos de IA es de 15 segundos. En el caso de las cargas de trabajo que no son de IA, el intervalo de raspado es de 30 segundos.

Para obtener más información sobre otras soluciones de observabilidad listas para usar que puedes configurar manualmente, consulta el artículo Introducción a la configuración de exportadores de la documentación de Google Cloud Observability.

Antes de empezar

Antes de empezar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando gcloud components update.

Requisitos para la monitorización automática de aplicaciones

Para habilitar la monitorización automática de aplicaciones, tu clúster de GKE debe cumplir los siguientes requisitos:

  • Tu clúster debe tener la versión 1.28 de GKE o una posterior.
  • Debes tener la versión 492.0.0 o una posterior de la CLI de gcloud.
  • Tu clúster debe tener habilitada la recogida gestionada de Google Cloud Managed Service para Prometheus. La recogida gestionada de Google Cloud Managed Service para Prometheus está habilitada de forma predeterminada en los clústeres nuevos.

Habilitar la monitorización automática de aplicaciones

Puedes habilitar la monitorización automática de aplicaciones en clústeres de GKE nuevos o ya creados mediante la Google Cloud consola, la CLI de Google Cloud o la API de GKE.

El raspado de métricas tarda hasta 10 minutos en iniciarse en las cargas de trabajo admitidas después de implementar una nueva carga de trabajo o de habilitar la monitorización automática de aplicaciones en un clúster.

Consola

Para habilitar la monitorización automática de aplicaciones en un clúster nuevo, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página Crear un clúster de Autopilot.

    Ir a Crear un clúster de Autopilot

    También puedes completar esta tarea creando un clúster estándar.

  2. En un clúster en modo Autopilot, haz clic en Configuración avanzada. En un clúster en modo Estándar, haz clic en Funciones.

  3. En la sección Operaciones, selecciona Habilitar monitorización automática de aplicaciones.

  4. Haz clic en Crear.

También puedes habilitar la monitorización automática de aplicaciones en un clúster que ya tengas. Para ello, actualiza el campo Habilitar monitorización automática de aplicaciones en la sección Operaciones de la pestaña Detalles del clúster.

gcloud

Para habilitar la monitorización automática de aplicaciones en un clúster nuevo, usa la opción --auto-monitoring-scope=ALL:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --auto-monitoring-scope=ALL

Haz los cambios siguientes:

También puedes actualizar un clúster con el comando gcloud container clusters update.

API

Para habilitar la monitorización automática de aplicaciones en un clúster nuevo, haz una solicitud POST al método clusters.create:

POST https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters

{
  "cluster": {
    "name": "CLUSTER_NAME",
    "initialNodeCount": 1,
    "monitoringConfig": {
      "managedPrometheusConfig": {
        "enabled": true,
        "autoMonitoringConfig": {
          "scope": "ALL"
        }
      }
    }
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto Google Cloud .
  • CLUSTER_NAME: el nombre del nuevo clúster.
  • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.

Determinar si la monitorización automática de aplicaciones está habilitada

Puede determinar si la monitorización automática de aplicaciones está habilitada o inhabilitada en un clúster mediante la Google Cloud consola, la CLI de gcloud o la API de GKE.

Consola

Sigue estos pasos:

  1. Ve a la página Google Kubernetes Engine en la Google Cloud consola:

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster.

  3. En la sección Funciones, el campo Monitorización automática de aplicaciones indica si esta opción está habilitada o inhabilitada.

gcloud

Describe el clúster:

gcloud container clusters describe CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --format='value(monitoringConfig.managedPrometheusConfig.autoMonitoringConfig.scope)'

Haz los cambios siguientes:

El resultado debería ser similar al siguiente:

autoMonitoringConfig.scope: ALL

En el resultado, si el valor del campo autoMonitoringConfig.scope es ALL, la monitorización automática de aplicaciones está habilitada. De lo contrario, la monitorización automática de aplicaciones se inhabilitará.

API

Haz una solicitud GET al método clusters.get:

GET https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters/CLUSTER_NAME

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto Google Cloud .
  • CLUSTER_NAME: el nombre del clúster.
  • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.

El resultado debería ser similar al siguiente:

autoMonitoringConfig.scope: ALL

En el resultado, si el valor del campo autoMonitoringConfig.scope es ALL, la monitorización automática de aplicaciones está habilitada. De lo contrario, la monitorización automática de aplicaciones se inhabilitará.

Ver panel de control

Cuando habilitas la monitorización automática de aplicaciones, GKE instala paneles de control predefinidos para monitorizar las aplicaciones de las cargas de trabajo compatibles que se hayan desplegado en tu clúster. No verás paneles de control de cargas de trabajo admitidas que nunca se hayan ejecutado en un clúster.

Para ver los paneles de control con telemetría de las cargas de trabajo monitorizadas automáticamente en la página de Google Kubernetes Engine, haz lo siguiente:

  1. Ve a la página Google Kubernetes Engine en la Google Cloud consola:

    Ir a Google Kubernetes Engine

  2. Haga clic en el nombre del clúster en el que quiera ver los paneles de control de las cargas de trabajo monitorizadas automáticamente.

  3. Haz clic en la pestaña Observabilidad. En la sección Integraciones se muestran los paneles configurados para las cargas de trabajo admitidas que se ejecutan en el clúster.

Para ver los paneles de control con telemetría de las cargas de trabajo monitorizadas automáticamente en la página Cloud Monitoring, haz lo siguiente:

  1. Ve a la página Paneles.

    Ir a Paneles

  2. Haz clic en la pestaña Lista de paneles de control.

  3. Selecciona la categoría Integraciones.

  4. Haga clic en el nombre del panel de control. Por ejemplo, RabbitMQ Prometheus Overview (Resumen de Prometheus de RabbitMQ).

Inhabilitar la monitorización automática de aplicaciones

Si inhabilitas la monitorización automática de aplicaciones en un clúster, los recursos PodMonitoring que ha creado GKE permanecerán intactos y GKE seguirá monitorizando las cargas de trabajo compatibles. GKE deja de monitorizar automáticamente las nuevas instancias de las cargas de trabajo compatibles que despliegues en el clúster. Para dejar de monitorizar las cargas de trabajo compatibles, debes eliminar los recursos PodMonitoring que haya creado GKE. Si vuelves a habilitar la monitorización automática de aplicaciones en un clúster, GKE detectará y reconciliará los recursos PodMonitoring que haya creado anteriormente.

Puedes inhabilitar la monitorización automática de aplicaciones en un clúster mediante laGoogle Cloud consola, la CLI de gcloud o la API de GKE.

Consola

  1. Ve a la página Google Kubernetes Engine en la Google Cloud consola:

    Ir a Google Kubernetes Engine

  2. Haz clic en el nombre del clúster.

  3. En la lista Funciones, busca el campo Monitorización automática de aplicaciones.

  4. Haz clic en Editar.

  5. Desmarca Habilitar monitorización automática de aplicaciones.

  6. Haz clic en Guardar.

gcloud

Actualiza el clúster con la opción --auto-monitoring-scope=NONE:

gcloud container clusters update CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --auto-monitoring-scope=NONE

Haz los cambios siguientes:

API

Haz una solicitud PUT al método clusters.update:

PUT https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters/CLUSTER_NAME

{
  "update": {
    "desiredMonitoringConfig": {
      "managedPrometheusConfig": {
        "autoMonitoringConfig": {
          "scope": "NONE"
        }
      }
    }
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto Google Cloud .
  • CLUSTER_NAME: el nombre del clúster.
  • COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.

Personalizar la monitorización automática de las cargas de trabajo admitidas

Puedes personalizar la configuración de la monitorización de instancias concretas de cargas de trabajo compatibles o inhabilitar la monitorización de instancias concretas de cargas de trabajo compatibles.

Para personalizar el recurso PodMonitoring de una instancia implementada de una carga de trabajo compatible sin afectar a la monitorización automática de aplicaciones de otras cargas de trabajo, debes excluir la instancia de la monitorización automática de aplicaciones y, a continuación, actualizar la configuración o sustituir el recurso PodMonitoring asociado a la instancia de la carga de trabajo de destino.

Si actualizas o eliminas un recurso PodMonitoring que GKE ha creado sin excluir la carga de trabajo asociada, GKE restaurará el recurso PodMonitoring para asegurar la continuidad mientras monitoriza otras cargas de trabajo compatibles.

Buscar el recurso PodMonitoring de una carga de trabajo

Puedes identificar el recurso PodMonitoring que ha creado GKE para una carga de trabajo mediante la consola Google Cloud :

  1. Ve a la página Explorador de objetos.

    Ir al navegador de objetos

  2. En el campo Clúster, introduce el nombre del clúster.

  3. En el campo Espacio de nombres, introduce el nombre del espacio de nombres.

  4. En el filtro Tipos de objeto, selecciona PodMonitoring.

  5. En monitoring.googleapis.com, selecciona PodMonitoring.

  6. Haga clic en el nombre de un objeto para inspeccionarlo. La etiqueta de metadatos source:gke-auto-monitoring indica que GKE ha creado el recurso PodMonitoring.

Excluir instancias implementadas de la monitorización automática

Si no quieres monitorizar una instancia desplegada de una carga de trabajo compatible o quieres personalizar la configuración de monitorización de una carga de trabajo, puedes excluirla de la monitorización automática de aplicaciones.

Para excluir una carga de trabajo, debe añadir la etiqueta de metadatos allow-gke-auto-monitoring: false a la configuración de la carga de trabajo de destino. Por ejemplo, el siguiente manifiesto describe un StatefulSet de RabbitMQ que no está monitorizado por la monitorización automática de aplicaciones:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: rabbitmq
  labels:
    allow-gke-auto-monitoring: "false"
spec:
  serviceName: rabbitmq
  replicas: 3

Después de excluir una instancia de carga de trabajo, puedes eliminar el recurso PodMonitoring que GKE ha creado para la carga de trabajo. GKE no intenta restaurar el recurso PodMonitoring si lo elimina o lo modifica. Si despliegas una carga de trabajo nueva con la etiqueta de metadatos allow-gke-auto-monitoring: false, GKE no crea un recurso PodMonitoring para la carga de trabajo.

Eliminar la configuración de monitorización de una carga de trabajo

Si quieres dejar de monitorizar una carga de trabajo o desplegar tu propio recurso PodMonitoring personalizado para una carga de trabajo, puedes eliminar la configuración de monitorización.

Para eliminar la configuración de monitorización automática de aplicaciones de una carga de trabajo concreta, haz lo siguiente:

  1. Excluye la carga de trabajo de la monitorización automática de aplicaciones.
  2. Identifica el recurso PodMonitoring que GKE ha creado para la carga de trabajo.
  3. Elimina el recurso PodMonitoring:

    kubectl delete podmonitoring POD_MONITORING_NAME -n NAMESPACE
    

    Haz los cambios siguientes:

    • POD_MONITORING_NAME: el nombre del recurso PodMonitoring.
    • NAMESPACE: el espacio de nombres del PodMonitoring recurso.

Para eliminar la configuración de monitorización automática de aplicaciones de todas las cargas de trabajo de un clúster, haz lo siguiente:

  1. Inhabilita la monitorización automática de aplicaciones.
  2. Elimina todos los recursos PodMonitoring del clúster con la etiqueta de metadatos source:gke-auto-monitoring:

    kubectl delete podmonitorings -l source=gke-auto-monitoring --all-namespaces
    

Precios

La configuración automática de la monitorización de aplicaciones y la instalación de los paneles de control predefinidos para las cargas de trabajo compatibles con la monitorización automática de aplicaciones están disponibles sin coste adicional. Sin embargo, Monitoring cobra por la ingesta de métricas por parte de Google Cloud Managed Service para Prometheus según los precios de Monitoring.

Siguientes pasos