Configura la recopilación de métricas


En este documento, se describe cómo configurar Google Kubernetes Engine (GKE) para enviar métricas a Cloud Monitoring. Cuando estén en Cloud Monitoring, las métricas pueden propagar paneles personalizados, generar alertas, crear objetivos de nivel de servicio o los servicios de supervisión de terceros los recuperan mediante la API de Cloud Monitoring.

GKE proporciona varias fuentes de métricas:

  • Métricas del sistema: métricas de componentes esenciales del sistema, que describen recursos de bajo nivel, como CPU, memoria y almacenamiento.
  • Google Cloud Managed Service para Prometheus: te permite supervisar y crear alertas en tus cargas de trabajo con Prometheus, sin tener que administrar y operar de forma manual Prometheus a gran escala.
  • Paquetes de métricas de observabilidad:

    • Métricas del plano de control: métricas exportadas desde ciertos componentes del plano de control como el servidor de la API y el programador.
    • Kube State Metrics: un conjunto seleccionado de métricas exportadas del servicio Estado de Kube, que se usa para supervisar el estado de los objetos de Kubernetes, como Pods, Deployments, entre otros. Para obtener el conjunto de métricas incluidas, consulta Usa Kube State Metrics.

      El paquete de estado de kube es una solución administrada. Si necesitas mayor flexibilidad, por ejemplo, si necesitas recopilar métricas adicionales, necesitas administrar intervalos de recopilación o recopilar otros recursos, puedes inhabilitar el paquete, si está habilitado, e implementa tu propia instancia del servicio de código abierto de Kube State Metrics. Para obtener más información, consulta la documentación del exportador de Google Cloud Managed Service para Prometheus sobre Kube State Metrics.

    • cAdvisor/Kubelet: un conjunto seleccionado de métricas de cAdvisor y Kubelet. Para obtener el conjunto de métricas incluidas, consulta Usa métricas de cAdvisor/Kubelet.

      El paquete cAdvisor/Kubelet es una solución administrada. Si necesitas más flexibilidad, por ejemplo, si necesitas recopilar métricas adicionales, administrar intervalos de scraping o usar scraping en otros recursos, puedes hacer lo siguiente:inhabilita el paquete, si está habilitado, e implementa tu propia instancia de los servicios de métricas de código abierto de cAdvisor/Kubelet.

    • Métricas del administrador de GPU del centro de datos de NVIDIA (DCGM): Métricas de DCGM que proporcionan una vista integral del estado, el rendimiento y el uso de la GPU.

Métricas del sistema

De forma predeterminada, GKE recopila ciertas métricas que emiten los componentes del sistema cuando se crea un clúster.

Tienes la opción de enviar métricas desde tu clúster de GKE a Cloud Monitoring. Si eliges enviar métricas a Cloud Monitoring, debes enviar métricas del sistema.

Todas las métricas del sistema de GKE se transfieren a Cloud Monitoring con el prefijo kubernetes.io.

Precios

Cloud Monitoring no cobra por la transferencia de métricas del sistema de GKE. Para obtener más información, consulta los Precios de Cloud Monitoring.

Configura la recopilación de métricas del sistema

Para habilitar la recopilación de métricas del sistema, pasa el valor SYSTEM a la marca --monitoring de los comandos gcloud container clusters create o gcloud container clusters update.

Para inhabilitar la recopilación de métricas del sistema, usa el valor NONE en la marca --monitoring. Si la recopilación de métricas del sistema está inhabilitada, la información básica como el uso de CPU, memoria y disco no está disponible para un clúster cuando se consultan las métricas de observabilidad.

En los clústeres de GKE Autopilot, no puedes inhabilitar la recopilación de métricas del sistema.

Consulta Observabilidad para GKE para obtener más detalles sobre la integración de Cloud Monitoring con GKE.

Para configurar la colección de métricas del sistema mediante Terraform, consulta el bloque monitoring_config en el registro de Terraform para google_container_cluster. Para obtener información general sobre el uso de Google Cloud con Terraform, consulta Terraform con Google Cloud.

Lista de métricas del sistema

Las métricas del sistema incluyen métricas de componentes esenciales del sistema que son importantes para Kubernetes. Para obtener una lista de estas métricas, consulta Métricas del sistema de GKE.

Si habilitas Cloud Monitoring para tu clúster, no podrás inhabilitar la supervisión del sistema (--monitoring=SYSTEM).

Métricas habilitadas de forma predeterminada en GKE Enterprise

En las siguientes tablas () se indica qué métricas están habilitados de forma predeterminada cuando creas y registras un clúster nuevo en un proyecto con GKE Enterprise habilitado:

Nombre de la métrica Autopilot Estándar
Sistema
Servidor de la API
Programador
Administrador del controlador
Volumen persistente (almacenamiento)
Pods
Implementación
StatefulState
DaemonSet
HorizonalPodAutoscaler
cAdvisor
Kubelet
Métricas del administrador de GPU del centro de datos de NVIDIA (DCGM)

Todos los clústeres registrados en un proyecto que tiene GKE Enterprise habilitado pueden usar los paquetes para Métricas del plano de control, Kube State Metrics y Métricas de cAdvisor/Kubelet sin cargos adicionales. De lo contrario, estas métricas generarán cargos de Cloud Monitoring.

Soluciona problemas del sistema de métricas

Si las métricas del sistema no están disponibles en Cloud Monitoring como se espera, consulta Soluciona problemas relacionados con las métricas del sistema.

Paquete: Métricas del plano de control

Puedes configurar un clúster de GKE para enviar ciertas métricas emitidas por el servidor de la API de Kubernetes, Scheduler y el Administrador de controladores a Cloud Monitoring.

Para obtener más información, consulta Recopila y visualiza métricas del plano de control.

Paquete: Kube State Metrics

Puedes configurar un clúster de GKE para enviar un conjunto seleccionado de Kube State Metrics en formato Prometheus a Cloud Monitoring. Este paquete de Kube State Metrics incluye métricas para los Pods, Deployments, StatefulSets, DaemonSets, recursos de HorizontalPodAutoscaler, volúmenes persistentes y reclamaciones de volúmenes persistentes.

Para obtener más información, consulta Recopila y visualiza métricas de Kube State.

Paquete: Métricas de cAdvisor/Kubelet

Puedes configurar un clúster de GKE para enviar un conjunto seleccionado de métricas de cAdvisor/Kubelet en formato Prometheus a Cloud Monitoring. El conjunto seleccionado de métricas es un subconjunto del gran conjunto de métricas de cAdvisor/Kubelet integradas en cada implementación de Kubernetes de forma predeterminada. El cAdvisor/Kubelet seleccionado está diseñado para proporcionar las métricas más útiles, lo que reduce el volumen de transferencia y los costos asociados.

Para obtener más información, consulta Recopila y consulta las métricas de cAdvisor/Kubelet.

Paquete: métricas del administrador de GPU del centro de datos de NVIDIA (DCGM)

Para supervisar el uso, el rendimiento y el estado de la GPU, configura GKE para que envíe métricas del administrador de GPU del centro de datos de NVIDIA (DCGM) a Cloud Monitoring.

Para obtener más información, consulta Recopila y visualiza métricas del administrador de GPU del centro de datos de NVIDIA (DCGM).

Inhabilita paquetes de métricas

Puedes inhabilitar el uso de paquetes de métricas en el clúster. Se recomienda inhabilitar ciertos paquetes para reducir costos o si usas un mecanismo alternativo a fin de recopilar las métricas, como Google Cloud Managed Service para Prometheus y un exportador.

Console

Para inhabilitar la recopilación de métricas de la pestaña Detalles del clúster, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Clústeres de Kubernetes.

    Ir a clústeres de Kubernetes

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Kubernetes Engine.

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

  3. En la fila Funciones etiquetada como Cloud Monitoring, haz clic en el ícono Editar.

  4. En el menú desplegable Componentes, borra los componentes de la métrica que deseas inhabilitar.

  5. Haz clic en Aceptar.

  6. Haz clic en Guardar cambios.

gcloud

  1. Abre una ventana de la terminal con el SDK de Google Cloud y Google Cloud CLI instalada. Una forma de hacerlo es mediante Cloud Shell:

  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. Llama al comando gcloud container clusters update y pasa un conjunto actualizado de valores a la marca --monitoring. El conjunto de valores proporcionados a la marca --monitoring anula cualquier configuración anterior.

    Por ejemplo, para desactivar la recopilación de todas las métricas, excepto las métricas del sistema, ejecuta el siguiente comando:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus \
        --monitoring=SYSTEM
    

    Este comando inhabilita la recopilación de cualquier paquete de métricas configurado con anterioridad.

Terraform

Para configurar la colección de métricas del sistema mediante Terraform, consulta el bloque monitoring_config en el registro de Terraform para google_container_cluster. Para obtener información general sobre el uso de Google Cloud con Terraform, consulta Terraform con Google Cloud.

Información sobre tu factura de Monitoring

Puedes usar Cloud Monitoring para identificar el plano de control o Kube State Metrics que escriben la mayor cantidad de muestras. Estas métricas son las que más contribuyen a los costos. Después de identificar las métricas más costosas, puedes modificar tu configuración de recopilación para filtrarlas de forma adecuada.

En la página Administración de métricas de Cloud Monitoring, se proporciona información que puede ayudarte a controlar el importe que inviertes en las métricas facturables sin afectar la observabilidad. En la página Administración de métricas, se informa la siguiente información:

  • Los volúmenes de transferencia para la facturación basada en bytes y de muestra, en todos los dominios de métricas y para las métricas individuales.
  • Datos sobre etiquetas y cardinalidad de métricas.
  • Cantidad de lecturas para cada métrica
  • Uso de métricas en políticas de alertas y paneles personalizados.
  • Tasa de errores de escritura de métricas.

También puedes usar la administración de métricas para excluir las métricas innecesarias, lo que elimina el costo de transferirlas.

Para ver la página Administración de métricas, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página  Administración de métricas:

    Ir a Administración de métricas

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. En la barra de herramientas, selecciona tu período. De forma predeterminada, la página Administración de métricas muestra información sobre las métricas recopiladas en el día anterior.

Para obtener más información sobre la página Administración de métricas, consulta Visualiza y administra el uso de métricas.

Para identificar qué métricas del plano de control o Kube State Metrics tienen la mayor cantidad de muestras transferidas, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página  Administración de métricas:

    Ir a Administración de métricas

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. En el cuadro de evaluación Muestras facturables, haz clic en Ver gráficos.

  3. Ubica el gráfico Transferencia de volúmenes de espacio de nombres y haz clic en Más opciones de gráfico.

  4. En el campo Métrica, verifica que estén seleccionados los recursos y la métrica siguientes:
    Metric Ingestion Attribution y Samples written by attribution id.

  5. En la página Filtros, haz lo siguiente:

    1. En el campo Etiqueta, verifica que el valor sea attribution_dimension.

    2. En el campo Comparación, verifica que el valor sea = (equals).

    3. En el campo Valor, selecciona cluster.

  6. Borra la configuración Agrupar por.

  7. De manera opcional, filtra solo ciertas métricas. Por ejemplo, todas las métricas del servidor de la API del plano de control incluyen “apiserver” como parte del nombre de la métrica, y todas las métricas de Pods de estado de kube incluyen “kube_pod” como parte del nombre de la métrica, por lo que puedes filtrar. para las métricas que contienen esas strings:

    • Haz clic en Agregar filtro.

    • En el campo Etiqueta, selecciona metric_type.

    • En el campo Comparación, selecciona =~ (equals regex).

    • En el campo Valor, ingresa .*apiserver.* o .*kube_pod.*.

  8. De manera opcional, agrupa la cantidad de muestras transferidas por región o proyecto de GKE:

    • Haz clic en Agrupar por.

    • Asegúrate de que esté seleccionado metric_type.

    • Para agrupar por región de GKE, selecciona ubicación.

    • Para agrupar por proyecto, selecciona project_id.

    • Haz clic en Aceptar.

  9. De manera opcional, agrupa la cantidad de muestras transferidas por nombre del clúster de GKE:

    • Haz clic en Agrupar por.

    • Para agrupar por nombre del clúster de GKE, asegúrate de que estén seleccionados attribution_dimension y attribution_id.

    • Haz clic en Aceptar.

  10. Para ver el volumen de transferencia de cada una de las métricas, selecciona Ambos en el botón de activación Gráfico de tabla de ambos. En la tabla, se muestra el volumen transferido para cada métrica de la columna Valor.

    Haz clic en el encabezado de la columna Valor dos veces para ordenar las métricas por volumen de transferencia descendente.

En estos pasos, se muestran las métricas con la tasa más alta de muestras transferidas a Cloud Monitoring. Dado que las métricas en los paquetes de observabilidad se cobran por la cantidad de muestras transferidas, presta atención a las métricas con la tasa de muestreo más alta.

Otras métricas

Además de las métricas del sistema y los paquetes de métricas que se describen en este documento, hay métricas de Istio disponibles para clústeres de GKE. Para obtener información sobre los precios, consulta Precios de Cloud Monitoring.

Métricas disponibles

En la siguiente tabla, se indican los valores admitidos para la marca --monitoring en los comandos create y update.

Fuente --monitoring Valor Métricas recopiladas
Ninguna NONE No se enviaron métricas a Cloud Monitoring. No hay ningún agente de recopilación de métricas instalado en el clúster. Este valor no es compatible con los clústeres de Autopilot.
Sistema SYSTEM Métricas de los componentes esenciales del sistema que se requieren para Kubernetes. Para obtener una lista completa de las métricas, consulta Métricas de Kubernetes.
Servidor de la API API_SERVER Métricas de kube-apiserver Para obtener una lista completa de las métricas, consulta Métricas del servidor de la API.
Programador SCHEDULER Métricas de kube-scheduler Para obtener una lista completa de las métricas, consulta Métricas del programador.
Administrador del controlador CONTROLLER_MANAGER Métricas de kube-controller-manager Para obtener una lista completa de las métricas, consulta Métricas del Administrador de controladores.
Volumen persistente (almacenamiento) STORAGE Métricas de almacenamiento de kube-state-metrics Incluye métricas para los volúmenes persistentes y las reclamaciones de volúmenes persistentes. Para obtener una lista completa de las métricas, consulta Métricas de almacenamiento.
Pod POD Métricas del Pod de kube-state-metrics. Para obtener una lista completa de las métricas, consulta Métricas del Pod.
Deployment DEPLOYMENT Métricas de implementación desde kube-state-metrics. Para obtener una lista completa de las métricas, consulta Métricas de implementación.
StatefulSet STATEFULSET Métricas de StatefulSet de kube-state-metrics. Para obtener una lista completa de las métricas, consulta Métricas de StatefulSet.
DaemonSet DAEMONSET Métricas de DaemonSet de kube-state-metrics Para obtener una lista completa de las métricas, consulta Métricas de DaemonSet.
HorizonalPodAutoscaler HPA Métricas del HPA de kube-state-metrics. Consulta una lista completa de las métricas de HorizonalPodAutoscaler.
cAdvisor CADVISOR Métricas de cAdvisor del paquete de métricas de cAdvisor/Kubelet. Para obtener una lista completa de las métricas, consulta Métricas de cAdvisor.
Kubelet KUBELET Métricas de Kubelet de cAdvisor/Kubelet. Para obtener una lista completa de las métricas, consulta Métricas de Kubelet.
Métricas del administrador de GPU del centro de datos de NVIDIA (DCGM) DCGM Métricas del administrador de GPU del centro de datos de NVIDIA (DCGM)

Además, puedes recopilar métricas de estilo Prometheus que expone cualquier carga de trabajo de GKE mediante Google Cloud Managed Service para Prometheus, que te permite supervisar y generar alertas sobre tus cargas de trabajo mediante Prometheus, sin tener que administrar y operar Prometheus de forma manual a gran escala.

¿Qué sigue?