Recoger y ver métricas de cAdvisor o Kubelet

En esta página se describe cómo configurar un clúster de Google Kubernetes Engine (GKE) para enviar un conjunto seleccionado de métricas de cAdvisor o Kubelet a Cloud Monitoring mediante Google Cloud Managed Service para Prometheus. En esta página también se describe cómo se da formato a estas métricas cuando se escriben en Monitoring y cómo se consultan.

El conjunto de métricas seleccionadas es un subconjunto de las métricas de cAdvisor o Kubelet que se incluyen de forma predeterminada en todas las implementaciones de Kubernetes. Incluye métricas relacionadas con la reducción del volumen de ingestión y los costes asociados.

Antes de empezar

Antes de empezar, asegúrate de que has 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 recoger métricas de cAdvisor o Kubelet, tu clúster de GKE debe cumplir los siguientes requisitos:

  • El clúster debe ejecutar la versión 1.29.3-gke.1093000 de GKE o una posterior. Los paquetes cAdvisor o Kubelet están habilitados de forma predeterminada al crear un clúster que ejecute la versión 1.29.3-gke.1093000 o una posterior.
  • El clúster debe tener habilitadas las métricas del sistema.
  • El clúster tiene 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.

Configurar la recogida de métricas de cAdvisor o Kubelet

Puedes habilitar las métricas de cAdvisor o Kubelet en un clúster de GKE con la Google Cloud consola, la CLI de gcloud o Terraform.

Consola

Para configurar las métricas de cAdvisor o Kubelet desde la pestaña Detalles del clúster, haz lo siguiente:

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

    Ve a Clústeres de Kubernetes.

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

  2. Haz clic en el nombre de tu clúster.

  3. En la fila Funciones, busque la opción Cloud Monitoring y haga clic en el icono Editar.

  4. En el cuadro de diálogo Editar monitorización en la nube que aparece, confirma que la opción Habilitar monitorización en la nube esté seleccionada.

  5. En el menú desplegable Componentes, seleccione los componentes de cAdvisor o Kubelet de los que quiera recoger métricas:

    • cAdvisor
    • Kubelet
  6. Haz clic en Aceptar.

  7. Haz clic en Guardar cambios.

gcloud

Actualiza tu clúster para recoger métricas:

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

Haz los cambios siguientes:

El conjunto de valores proporcionado a la marca monitoring anula cualquier ajuste anterior.

Terraform

Para configurar la recogida de métricas de cAdvisor o Kubelet mediante Terraform, consulta el bloque monitoring_config en el registro de Terraform de google_container_cluster. Para obtener información general sobre el uso de Google Cloud con Terraform, consulta Terraform con Google Cloud.

Formato de la métrica

Todas las métricas de cAdvisor o Kubelet de Kubernetes escritas en Cloud Monitoring usan el tipo de recurso prometheus_target. Cada nombre de métrica tiene el prefijo prometheus.googleapis.com/ y un sufijo que indica el tipo de métrica de Prometheus, como /gauge, /histogram o /counter. De lo contrario, cada nombre de métrica es idéntico al nombre de métrica expuesto por Kubernetes de código abierto.

Exportar datos de Cloud Monitoring

Las métricas de cAdvisor o Kubelet se pueden exportar desde Cloud Monitoring mediante la API de Cloud Monitoring. Como todas las métricas de cAdvisor o Kubelet se ingieren mediante Google Cloud Managed Service para Prometheus, las métricas de cAdvisor o Kubelet se pueden consultar con el lenguaje de consulta de Prometheus (PromQL). También se pueden consultar con Monitoring Query Language (MQL).

Consultar métricas

Cuando consultas métricas de cAdvisor o Kubelet, el nombre que usas depende de si utilizas PromQL o funciones basadas en Cloud Monitoring, como MQL o la interfaz basada en menús del explorador de métricas.

En las siguientes tablas de métricas de cAdvisor y Kubelet se muestran dos versiones de cada nombre de métrica:

  • Nombre de métrica de PromQL: cuando uses PromQL en las páginas de Cloud Monitoring de la Google Cloud consola o en los campos de PromQL de la API de Cloud Monitoring, usa el nombre de métrica de PromQL.
  • Nombre de la métrica de Cloud Monitoring: cuando uses otras funciones de Cloud Monitoring, utiliza el nombre de la métrica de Cloud Monitoring que aparece en las tablas de abajo. Este nombre debe ir precedido de prometheus.googleapis.com/, que se ha omitido en las entradas de la tabla.

Métricas de cAdvisor

Los nombres de métricas de Cloud Monitoring de esta tabla deben tener el prefijo prometheus.googleapis.com/. Se ha omitido ese prefijo en las entradas de la tabla.

Nombre de métrica de PromQL
Nombre de métrica de Cloud Monitoring
Tipo, unidad
Recursos monitorizados
Versión de GKE necesaria
Descripción
Etiquetas
container_cpu_cfs_periods_total
container_cpu_cfs_periods_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de intervalos del periodo de cumplimiento transcurridos. Se muestrea cada 30 segundos.

cpu
container_cpu_cfs_throttled_periods_total
container_cpu_cfs_throttled_periods_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de intervalos de periodo limitados. Se muestrea cada 30 segundos.

cpu
container_cpu_usage_seconds_total
container_cpu_usage_seconds_total/counter
CUMULATIVEDOUBLEs
prometheus_target
1.29.3-gke.1093000
Tiempo de CPU acumulado consumido. Se muestrea cada 30 segundos.

cpu
container_fs_limit_bytes
container_fs_limit_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Número de bytes que puede consumir el contenedor en este sistema de archivos. Se muestrea cada 30 segundos.

disk
container_fs_read_seconds_total
container_fs_read_seconds_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Recuento acumulado de lecturas completadas. Se muestrea cada 30 segundos.

diskIO
container_fs_reads_bytes_total
container_fs_reads_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Recuento acumulativo de bytes leídos. Se muestrea cada 30 segundos.

diskIO
container_fs_reads_total
container_fs_reads_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Recuento acumulado de lecturas completadas. Se muestrea cada 30 segundos.

diskIO
container_fs_usage_bytes
container_fs_usage_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Número de bytes que consume el contenedor en este sistema de archivos. Se muestrea cada 30 segundos.

disk
container_fs_write_seconds_total
container_fs_write_seconds_total/counter
CUMULATIVEDOUBLEs
prometheus_target
1.29.3-gke.1093000
Número acumulativo de segundos dedicados a escribir. Se muestrea cada 30 segundos.

diskIO
container_fs_writes_bytes_total
container_fs_writes_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Recuento acumulativo de bytes escritos. Se muestrea cada 30 segundos.

diskIO
container_fs_writes_total
container_fs_writes_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Recuento acumulado de escrituras completadas. Se muestrea cada 30 segundos.

diskIO
container_memory_rss
container_memory_rss/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Tamaño de RSS. Se muestrea cada 30 segundos.

memory
container_memory_working_set_bytes
container_memory_working_set_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Conjunto de trabajo actual. Se muestrea cada 30 segundos.

memory
container_network_receive_bytes_total
container_network_receive_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Recuento acumulativo de bytes recibidos. Se muestrea cada 30 segundos.

network
container_network_receive_packets_dropped_total
container_network_receive_packets_dropped_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número acumulativo de paquetes descartados durante la recepción. Se muestrea cada 30 segundos.

network
container_network_receive_packets_total
container_network_receive_packets_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Recuento acumulativo de paquetes recibidos. Se muestrea cada 30 segundos.

network
container_network_transmit_bytes_total
container_network_transmit_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Recuento acumulativo de bytes transmitidos. Se muestrea cada 30 segundos.

network
container_network_transmit_packets_dropped_total
container_network_transmit_packets_dropped_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Recuento acumulativo de paquetes descartados durante la transmisión. Se muestrea cada 30 segundos.

network
container_network_transmit_packets_total
container_network_transmit_packets_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número acumulativo de paquetes transmitidos. Se muestrea cada 30 segundos.

network

Métricas de Kubelet

Los nombres de métricas de Cloud Monitoring de esta tabla deben tener el prefijo prometheus.googleapis.com/. Se ha omitido ese prefijo en las entradas de la tabla.

Nombre de métrica de PromQL
Nombre de métrica de Cloud Monitoring
Tipo, unidad
Recursos monitorizados
Versión de GKE necesaria
Descripción
Etiquetas
kubelet_certificate_manager_server_ttl_seconds
kubelet_certificate_manager_server_ttl_seconds/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Métrica del TTL (tiempo de vida) más corto del certificado de servicio de Kubelet. El valor se muestra en segundos hasta que caduque el certificado (negativo si ya ha caducado). Si el certificado de servicio no es válido o no se usa, el valor será +INF. Se muestrea cada 30 segundos.

 
kubelet_node_name
kubelet_node_name/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
El nombre del nodo. El recuento siempre es 1. Se muestrea cada 30 segundos.

node
kubelet_pleg_relist_duration_seconds
kubelet_pleg_relist_duration_seconds/histogram
CUMULATIVEDISTRIBUTIONs
prometheus_target
1.29.3-gke.1093000
Duración en segundos para volver a incluir pods en PLEG. Se muestrea cada 30 segundos.

 
kubelet_pod_worker_duration_seconds
kubelet_pod_worker_duration_seconds/histogram
CUMULATIVEDISTRIBUTIONs
prometheus_target
1.29.3-gke.1093000
Duración en segundos para sincronizar un solo pod. Desglosado por tipo de operación: crear, actualizar o sincronizar. Se muestrea cada 30 segundos.

operation_type
kubelet_running_containers
kubelet_running_containers/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de contenedores que se están ejecutando. Se muestrea cada 30 segundos.

container_state
kubelet_running_pods
kubelet_running_pods/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de pods que tienen un sandbox de pod en ejecución. Se muestrea cada 30 segundos.

 
kubelet_runtime_operations_total
kubelet_runtime_operations_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número acumulativo de operaciones de tiempo de ejecución por tipo de operación. Se muestrea cada 30 segundos.

operation_type
kubelet_volume_stats_available_bytes
kubelet_volume_stats_available_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de bytes disponibles en el volumen. Se muestrea cada 30 segundos.

namespace
persistentvolumeclaim
kubelet_volume_stats_capacity_bytes
kubelet_volume_stats_capacity_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Capacidad del volumen en bytes. Se muestrea cada 30 segundos.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes
kubelet_volume_stats_inodes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número máximo de inodos del volumen. Se muestrea cada 30 segundos.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_free
kubelet_volume_stats_inodes_free/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de inodos libres en el volumen. Se muestrea cada 30 segundos.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_used
kubelet_volume_stats_inodes_used/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de inodos usados en el volumen. Se muestrea cada 30 segundos.

namespace
persistentvolumeclaim
kubelet_volume_stats_used_bytes
kubelet_volume_stats_used_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de bytes usados en el volumen. Se muestrea cada 30 segundos.

namespace
persistentvolumeclaim