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:
-
En la Google Cloud consola, ve a la página 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.
Haz clic en el nombre de tu clúster.
En la fila Funciones, busque la opción Cloud Monitoring y haga clic en el icono Editar.
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.
En el menú desplegable Componentes, seleccione los componentes de cAdvisor o Kubelet de los que quiera recoger métricas:
- cAdvisor
- Kubelet
Haz clic en Aceptar.
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:
CLUSTER_NAME
: el nombre del clúster.COMPUTE_LOCATION
: la ubicación de Compute Engine del clúster.
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , s
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
|
|
GAUGE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , s
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
|
|
CUMULATIVE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , By
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
|
|
GAUGE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
CUMULATIVE , DISTRIBUTION , s
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
|
|
CUMULATIVE , DISTRIBUTION , s
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
Número de bytes usados en el volumen. Se muestrea cada 30 segundos.namespace
persistentvolumeclaim
|