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/Kubelet a Cloud Monitoring con Google Cloud Managed Service para Prometheus. Esta página también describe cómo se formatean estas métricas cuando se escriben en Monitoring y cómo se consultan métricas.
El conjunto seleccionado de métricas es un subconjunto del conjunto de métricas de cAdvisor/Kubelet integradas en cada implementación de Kubernetes de forma predeterminada e incluye métricas relacionadas con la reducción del volumen de transferencia y los costos asociados.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta el comando
gcloud components updatepara obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos que se describen en este documento.
Requisitos
Para recopilar las métricas de cAdvisor/Kubelet, el clúster de GKE debe cumplir con los siguientes requisitos:
- El clúster debe ejecutar la versión 1.29.3-gke.1093000 de GKE o una posterior. Los paquetes de cAdvisor/Kubelet se habilitan de forma predeterminada cuando creas un clúster que ejecuta 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 recopilación administrada de Google Cloud Managed Service para Prometheus. La recopilación administrada de Google Cloud Managed Service para Prometheus está habilitada de forma predeterminada en los clústeres nuevos.
Configura la recopilación de métricas de cAdvisor/Kubelet
Puedes habilitar las métricas de cAdvisor/Kubelet en un clúster de GKE existente con la Google Cloud consola, la gcloud CLI o Terraform.
Console
Para configurar las métricas de cAdvisor/Kubelet desde la pestaña Detalles del clúster, haz lo siguiente:
-
En la consola de Google Cloud , accede a la página de los clústeres de Kubernetes.
Acceder a los 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.
Haz clic en el nombre del clúster.
En la fila Funciones etiquetada como Cloud Monitoring, haz clic en el ícono Editar.
En el cuadro de diálogo Editar Cloud Monitoring que aparecerá, confirma que esté seleccionada la opción Habilitar Cloud Monitoring.
En el menú desplegable Componentes, selecciona los componentes de cAdvisor/Kubelet del que deseas recopilar métricas:
- cAdvisor
- Kubelet
Haz clic en Aceptar.
Haz clic en Guardar cambios.
gcloud
Actualiza tu clúster para recopilar métricas:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--enable-managed-prometheus \
--monitoring=SYSTEM,CADVISOR,KUBELET
Reemplaza lo siguiente:
CLUSTER_NAME: es el nombre del clúster existente.COMPUTE_LOCATION: la ubicación de Compute Engine del clúster.
El conjunto de valores proporcionados a la marca monitoring
anula cualquier configuración anterior.
Terraform
Para configurar la colección de métricas de cAdvisor/Kubelet 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.
Formato de métricas
Todas las métricas de cAdvisor/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 tiene 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 la métrica que expone Kubernetes de código abierto.
Exporta desde Cloud Monitoring
Las métricas de cAdvisor/Kubelet pueden exportarse desde Cloud Monitoring con la API de Cloud Monitoring. Debido a que todas las métricas de cAdvisor/Kubelet se transfieren mediante Google Cloud Managed Service para Prometheus, las métricas de cAdvisor/Kubelet se pueden consultar a través del lenguaje de consulta de Prometheus (PromQL). También se pueden consultar a través del uso del lenguaje de consulta de Monitoring (MQL).
Consulta métricas
Cuando consultas las métricas de cAdvisor/Kubelet, el nombre que usas depende de si usas funciones basadas en PromQL o Cloud Monitoring, como MQL o la interfaz controlada por menú del Explorador de métricas.
Las siguientes tablas de métricas de cAdvisor/Kubelet muestran dos versiones de cada nombre de métrica:
- Nombre de la métrica de PromQL: Cuando usas PromQL en páginas de Cloud Monitoring de la consola de Google Cloud o en campos de PromQL de la API de Cloud Monitoring, usa el nombre de la métrica de PromQL.
- Nombre de la métrica de Cloud Monitoring
Cuando uses otras
funciones de Cloud Monitoring, usa el nombre de la métrica de Cloud Monitoring
en las tablas que aparecen a continuación. Este nombre debe tener el prefijo
prometheus.googleapis.com/, que se omitió en las entradas de la tabla.
Métricas de cAdvisor
Los nombres de las métricas de Cloud Monitoring en esta tabla deben tener el prefijo prometheus.googleapis.com/. Este prefijo se omitió en las entradas de la tabla.
| Nombre de la métrica de PromQL Nombre de la métrica de Cloud Monitoring |
|
|---|---|
|
Categoría, tipo, unidad
Recursos supervisados Versión de GKE requerida |
Descripción Etiquetas |
container_cpu_cfs_periods_totalcontainer_cpu_cfs_periods_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Cantidad de intervalos de períodos de aplicación transcurridos. Se tomaron muestras cada 30 segundos.cpu
|
container_cpu_cfs_throttled_periods_totalcontainer_cpu_cfs_throttled_periods_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Cantidad de intervalos de períodos regulados. Se tomaron muestras cada 30 segundos.cpu
|
container_cpu_usage_seconds_totalcontainer_cpu_usage_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, s
prometheus_target 1.29.3-gke.1093000 |
Tiempo de CPU consumido acumulado. Se tomaron muestras cada 30 segundos.cpu
|
container_fs_limit_bytescontainer_fs_limit_bytes/gauge
|
|
GAUGE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Cantidad de bytes que puede consumir el contenedor en este sistema de archivos. Se tomaron muestras cada 30 segundos.disk
|
container_fs_read_seconds_totalcontainer_fs_read_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Recuento acumulativo de lecturas completadas. Se tomaron muestras cada 30 segundos.diskIO
|
container_fs_reads_bytes_totalcontainer_fs_reads_bytes_total/counter
|
|
CUMULATIVE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Recuento acumulativo de bytes leídos. Se tomaron muestras cada 30 segundos.diskIO
|
container_fs_reads_totalcontainer_fs_reads_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Recuento acumulativo de lecturas completadas. Se tomaron muestras cada 30 segundos.diskIO
|
container_fs_usage_bytescontainer_fs_usage_bytes/gauge
|
|
GAUGE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Cantidad de bytes que consume el contenedor en este sistema de archivos. Se tomaron muestras cada 30 segundos.disk
|
container_fs_write_seconds_totalcontainer_fs_write_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, s
prometheus_target 1.29.3-gke.1093000 |
Recuento acumulativo de segundos dedicados a la escritura. Se tomaron muestras cada 30 segundos.diskIO
|
container_fs_writes_bytes_totalcontainer_fs_writes_bytes_total/counter
|
|
CUMULATIVE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Recuento acumulativo de bytes escritos. Se tomaron muestras cada 30 segundos.diskIO
|
container_fs_writes_totalcontainer_fs_writes_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Recuento acumulativo de escrituras completadas. Se tomaron muestras cada 30 segundos.diskIO
|
container_memory_rsscontainer_memory_rss/gauge
|
|
GAUGE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Tamaño del RSS. Se tomaron muestras cada 30 segundos.memory
|
container_memory_working_set_bytescontainer_memory_working_set_bytes/gauge
|
|
GAUGE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Conjunto de trabajo actual. Se tomaron muestras cada 30 segundos.memory
|
container_network_receive_bytes_totalcontainer_network_receive_bytes_total/counter
|
|
CUMULATIVE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Recuento acumulativo de bytes recibidos. Se tomaron muestras cada 30 segundos.network
|
container_network_receive_packets_dropped_totalcontainer_network_receive_packets_dropped_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Recuento acumulativo de paquetes descartados durante la recepción.
Se tomaron muestras cada 30 segundos.network
|
container_network_receive_packets_totalcontainer_network_receive_packets_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Recuento acumulativo de paquetes recibidos. Se tomaron muestras cada 30 segundos.network
|
container_network_transmit_bytes_totalcontainer_network_transmit_bytes_total/counter
|
|
CUMULATIVE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Recuento acumulativo de bytes transmitidos. Se tomaron muestras cada 30 segundos.network
|
container_network_transmit_packets_dropped_totalcontainer_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 tomaron muestras cada 30 segundos.network
|
container_network_transmit_packets_totalcontainer_network_transmit_packets_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Recuento acumulativo de paquetes transmitidos. Se tomaron muestras cada 30 segundos.network
|
Métricas de Kubelet
Los nombres de las métricas de Cloud Monitoring en esta tabla deben tener el prefijo prometheus.googleapis.com/. Este prefijo se omitió en las entradas de la tabla.
| Nombre de la métrica de PromQL Nombre de la métrica de Cloud Monitoring |
|
|---|---|
|
Categoría, tipo, unidad
Recursos supervisados Versión de GKE requerida |
Descripción Etiquetas |
kubelet_certificate_manager_server_ttl_secondskubelet_certificate_manager_server_ttl_seconds/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Indicador del TTL (tiempo de actividad) más corto del certificado de entrega de Kubelet. El valor está en segundos hasta que venza el certificado
(negativa si ya venció). Si el certificado de publicación no es válido o
está sin usar, el valor será +INF. Se tomaron muestras cada 30 segundos. |
kubelet_node_namekubelet_node_name/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
El nombre del nodo. El recuento es siempre 1. Se tomaron muestras cada 30 segundos.node
|
kubelet_pleg_relist_duration_secondskubelet_pleg_relist_duration_seconds/histogram
|
|
CUMULATIVE, DISTRIBUTION, s
prometheus_target 1.29.3-gke.1093000 |
Duración en segundos para volver a mostrar los Pods en PLEG. Se tomaron muestras cada 30 segundos. |
kubelet_pod_worker_duration_secondskubelet_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 tomaron muestras cada 30 segundos.operation_type
|
kubelet_running_containerskubelet_running_containers/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Cantidad de contenedores que se ejecutan actualmente. Se tomaron muestras cada 30 segundos.container_state
|
kubelet_running_podskubelet_running_pods/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Cantidad de Pods que tienen una zona de pruebas de Pods en ejecución. Se tomaron muestras cada 30 segundos. |
kubelet_runtime_operations_totalkubelet_runtime_operations_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Cantidad acumulativa de operaciones del entorno de ejecución por tipo de operación.
Se tomaron muestras cada 30 segundos.operation_type
|
kubelet_volume_stats_available_byteskubelet_volume_stats_available_bytes/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Cantidad de bytes disponibles en el volumen. Se tomaron muestras cada 30 segundos.namespace
persistentvolumeclaim
|
kubelet_volume_stats_capacity_byteskubelet_volume_stats_capacity_bytes/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Capacidad en bytes del volumen. Se tomaron muestras cada 30 segundos.namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodeskubelet_volume_stats_inodes/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Cantidad máxima de inodos en el volumen. Se tomaron muestras cada 30 segundos.namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodes_freekubelet_volume_stats_inodes_free/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Cantidad de inodos libres en el volumen. Se tomaron muestras cada 30 segundos.namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodes_usedkubelet_volume_stats_inodes_used/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Cantidad de inodos usados en el volumen. Se tomaron muestras cada 30 segundos.namespace
persistentvolumeclaim
|
kubelet_volume_stats_used_byteskubelet_volume_stats_used_bytes/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Cantidad de bytes usados en el volumen. Se tomaron muestras cada 30 segundos.namespace
persistentvolumeclaim
|