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:
- Apache Airflow
- Istio
- RabbitMQ
- Servidores de modelos de IA:
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
.
- Habilita la API Cloud Monitoring.
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:
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.
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.
En la sección Operaciones, selecciona Habilitar monitorización automática de aplicaciones.
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:
CLUSTER_NAME
: el nombre del nuevo clúster.COMPUTE_LOCATION
: la ubicación de Compute Engine del clúster.
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:
Ve a la página Google Kubernetes Engine en la Google Cloud consola:
En la lista de clústeres, haz clic en el nombre del clúster.
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:
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á.
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:
Ve a la página Google Kubernetes Engine en la Google Cloud consola:
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.
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:
Ve a la página Paneles.
Haz clic en la pestaña Lista de paneles de control.
Selecciona la categoría Integraciones.
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
Ve a la página Google Kubernetes Engine en la Google Cloud consola:
Haz clic en el nombre del clúster.
En la lista Funciones, busca el campo Monitorización automática de aplicaciones.
Haz clic en editEditar.
Desmarca Habilitar monitorización automática de aplicaciones.
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:
CLUSTER_NAME
: el nombre del clúster.COMPUTE_LOCATION
: la ubicación de Compute Engine del clúster.
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 :
Ve a la página Explorador de objetos.
En el campo Clúster, introduce el nombre del clúster.
En el campo Espacio de nombres, introduce el nombre del espacio de nombres.
En el filtro Tipos de objeto, selecciona PodMonitoring.
En monitoring.googleapis.com, selecciona PodMonitoring.
Haga clic en el nombre de un objeto para inspeccionarlo. La etiqueta de metadatos
source:gke-auto-monitoring
indica que GKE ha creado el recursoPodMonitoring
.
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:
- Excluye la carga de trabajo de la monitorización automática de aplicaciones.
- Identifica el recurso
PodMonitoring
que GKE ha creado para la carga de trabajo. Elimina el recurso
PodMonitoring
:kubectl delete podmonitoring POD_MONITORING_NAME -n NAMESPACE
Haz los cambios siguientes:
POD_MONITORING_NAME
: el nombre del recursoPodMonitoring
.NAMESPACE
: el espacio de nombres delPodMonitoring
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:
- Inhabilita la monitorización automática de aplicaciones.
Elimina todos los recursos
PodMonitoring
del clúster con la etiqueta de metadatossource: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
- Consulta cómo ver las métricas de observabilidad.