En esta página se describen las métricas y los paneles disponibles para monitorizar la latencia de inicio de las cargas de trabajo de Google Kubernetes Engine (GKE) y los nodos de clúster subyacentes. Puede usar las métricas para monitorizar, solucionar problemas y reducir la latencia de inicio.
Esta página está dirigida a administradores y operadores de la plataforma que necesiten monitorizar y optimizar la latencia de inicio de sus cargas de trabajo. Para obtener más información sobre los roles habituales a los que hacemos referencia en el contenido de Google Cloud , consulta Roles y tareas habituales de los usuarios de GKE.
Información general
La latencia de inicio influye significativamente en la forma en que tu aplicación responde a los picos de tráfico, en la rapidez con la que sus réplicas se recuperan de las interrupciones y en la eficiencia de los costes operativos de tus clústeres y cargas de trabajo. Monitorizar la latencia de inicio de tus cargas de trabajo puede ayudarte a detectar degradaciones de la latencia y a hacer un seguimiento del impacto de las actualizaciones de las cargas de trabajo y de la infraestructura en la latencia de inicio.
Optimizar la latencia de inicio de las cargas de trabajo tiene las siguientes ventajas:
- Reduce la latencia de respuesta de tu servicio a los usuarios durante los picos de tráfico.
- Reduce el exceso de capacidad de servicio que se necesita para absorber los picos de demanda mientras se crean réplicas nuevas.
- Reduce el tiempo de inactividad de los recursos que ya se han implementado y están esperando a que se inicien los recursos restantes durante los cálculos por lotes.
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
.
Habilita las APIs Cloud Logging y Cloud Monitoring.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Requisitos
Para ver las métricas y los paneles de control de la latencia de inicio de las cargas de trabajo, tu clúster de GKE debe cumplir los siguientes requisitos:
- Debes tener la versión 1.31.1-gke.1678000 de GKE o una posterior.
- Debe configurar la recogida de métricas del sistema.
- Debe configurar la recogida de registros del sistema.
- Habilita kube-state-metrics con el componente
POD
en tus clústeres para ver las métricas de pods y contenedores.
Roles y permisos necesarios
Para obtener los permisos que necesitas para habilitar la generación de registros y para acceder a los registros y procesarlos, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Ver clústeres, nodos y cargas de trabajo de GKE:
Lector de Kubernetes Engine (
roles/container.viewer
) en tu proyecto -
Accede a las métricas de latencia de inicio y consulta los paneles de control:
Monitoring Viewer (
roles/monitoring.viewer
) en tu proyecto -
Accede a los registros con información sobre la latencia, como los eventos de extracción de imágenes de Kubelet, y visualízalos en Explorador de registros y Analíticas de registros:
Visor de registros (
roles/logging.viewer
) en tu proyecto
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Métricas de latencia de inicio
Las métricas de latencia de inicio se incluyen en las métricas del sistema de GKE y se exportan a Cloud Monitoring en el mismo proyecto que el clúster de GKE.
Los nombres de métricas de Cloud Monitoring de esta tabla deben tener el prefijo kubernetes.io/
. Se ha omitido ese prefijo en las entradas de la tabla.
Tipo de métrica (niveles de jerarquía de recursos) Nombre visible |
|
---|---|
Tipo, unidad
Recursos monitorizados |
Descripción Etiquetas |
pod/latencies/pod_first_ready
(project)
Latencia del primer elemento listo del pod |
|
GAUGE , Double , s
k8s_pod |
Latencia de inicio de extremo a extremo del pod (desde el pod Created hasta Ready ), incluidas las extracciones de imágenes. Se muestrea cada 60 segundos. |
node/latencies/startup
(proyecto)
Latencia de inicio de nodo |
|
GAUGE , INT64 , s
k8s_node |
La latencia total de inicio del nodo, desde CreationTimestamp hasta Kubernetes node ready de la instancia de GCE por primera vez. Se muestrea cada 60 segundos.accelerator_family : clasificación de los nodos en función de los aceleradores de hardware: gpu , tpu y cpu .
kube_control_plane_available : indica si la solicitud de creación de nodos se recibió cuando KCP (plano de control de kube) estaba disponible.
|
autoscaler/latencies/per_hpa_recommendation_scale_latency_seconds
(proyecto)
Latencia de escalado por recomendación de HPA |
|
GAUGE , DOUBLE , s
k8s_scale |
Latencia de la recomendación de escalado de Autoescalado de pods horizontal (HPA) (tiempo transcurrido entre la creación de las métricas y la aplicación de la recomendación de escalado correspondiente al destino de HPA). Se muestrea cada 60 segundos. Después del muestreo, los datos no podrán verse durante un máximo de 20 segundos.metric_type : el tipo de fuente de métricas. Debe ser "ContainerResource" , "External" , "Object" , "Pods" o "Resource" .
|
Ver el panel de control Latencia de inicio de las cargas de trabajo
El panel de control Latencia de inicio de las cargas de trabajo solo está disponible para las implementaciones. Para ver las métricas de latencia de inicio de los despliegues, sigue estos pasos en la Google Cloud consola:
Ve a la página Cargas de trabajo.
Para abrir la vista Detalles de la implementación, haz clic en el nombre de la carga de trabajo que quieras inspeccionar.
Haz clic en la pestaña Observabilidad.
En el menú de la izquierda, selecciona Latencia de inicio.
Ver la distribución de la latencia de inicio de los pods
La latencia de inicio de los pods se refiere a la latencia de inicio total, incluidas las extracciones de imágenes, que mide el tiempo transcurrido desde el estado Created
del pod hasta el estado Ready
. Puedes evaluar la latencia de inicio de los pods con los dos gráficos siguientes:
Gráfico Distribución de la latencia de inicio de pods: muestra los percentiles de latencia de inicio de los pods (percentiles 50, 95 y 99) que se calculan en función de las observaciones de los eventos de inicio de pods en intervalos de tiempo fijos de 3 horas (por ejemplo, de 00:00 a 03:00 y de 03:00 a 06:00). Puede usar este gráfico para lo siguiente:
- Conocer la latencia inicial de los pods.
- Identifica los cambios en la latencia de inicio de los pods a lo largo del tiempo.
- Correlacionar los cambios en la latencia de inicio de los pods con eventos recientes, como implementaciones de cargas de trabajo o eventos de la herramienta de adaptación dinámica de clústeres. Puede seleccionar los eventos de la lista Anotaciones, situada en la parte superior del panel de control.

Gráfico Número de inicios de pods: muestra el número de pods que se han iniciado durante los intervalos de tiempo seleccionados. Puedes usar este gráfico para lo siguiente:
- Conocer los tamaños de muestra de los pods que se usan para calcular los percentiles de la distribución de la latencia de inicio de los pods en un intervalo de tiempo determinado.
- Conocer las causas de los inicios de pods, como las implementaciones de cargas de trabajo o los eventos de autoescalado de pods horizontal. Puede seleccionar los eventos de la lista Anotaciones situada en la parte superior del panel de control.

Ver la latencia de inicio de los pods individuales
Puedes ver la latencia de inicio de los pods en el gráfico cronológico Pod First Ready Latency (Latencia del primer estado Listo del pod) y en la lista asociada.
- Usa el gráfico cronológico Latencia del primer contenedor listo para correlacionar los inicios de contenedores individuales con eventos recientes, como los eventos de la herramienta de escalado automático horizontal de pods o de la herramienta de escalado automático de clústeres. Puede seleccionar estos eventos en la lista Anotaciones situada en la parte superior del panel de control. Este gráfico te ayuda a determinar las posibles causas de los cambios en la latencia de inicio en comparación con otros pods.
- Usa la lista Latencia hasta que el pod está listo para identificar los pods que han tardado más o menos tiempo en iniciarse. Puedes ordenar la lista por la columna Latencia. Cuando identifiques los pods que tienen la latencia de inicio más alta, podrás solucionar los problemas de degradación de la latencia correlacionando los eventos de inicio de los pods con otros eventos recientes.

Para saber cuándo se creó un pod concreto, consulta el valor del campo timestamp
en el evento de creación del pod correspondiente. Para ver el campo timestamp
, ejecuta la siguiente consulta en Explorador de registros:
log_id("cloudaudit.googleapis.com/activity") AND
protoPayload.methodName="io.k8s.core.v1.pods.create" AND
resource.labels.project_id=PROJECT_ID AND
resource.labels.cluster_name=CLUSTER_NAME AND
resource.labels.location=CLUSTER_LOCATION AND
protoPayload.response.metadata.namespace=NAMESPACE AND
protoPayload.response.metadata.name=POD_NAME
Para enumerar todos los eventos de creación de pods de tu carga de trabajo, usa el siguiente filtro
en la consulta anterior:
protoPayload.response.metadata.name=~"POD_NAME_PREFIX-[a-f0-9]{7,10}-[a-z0-9]{5}"
Al comparar las latencias de los pods individuales, puedes probar el impacto de varias configuraciones en la latencia de inicio de los pods e identificar una configuración óptima en función de tus requisitos.
Determinar la latencia de programación de pods
La latencia de programación de pods es el tiempo que transcurre entre la creación de un pod y su programación en un nodo. La latencia de programación de pods influye en el tiempo de inicio de un pod de principio a fin. Se calcula restando las marcas de tiempo de un evento de programación de pods y de una solicitud de creación de pods.
Puedes encontrar la marca de tiempo de un evento de programación de Pod concreto en el campo jsonPayload.eventTime
del evento de programación de Pod correspondiente. Para ver el campo jsonPayload.eventTime
, ejecuta la siguiente consulta en Explorador de registros:
log_id("events")
jsonPayload.reason="Scheduled"
resource.type="k8s_pod"
resource.labels.project_id=PROJECT_ID
resource.labels.location=CLUSTER_LOCATION
resource.labels.cluster_name=CLUSTER_NAME
resource.labels.namespace_name=NAMESPACE
resource.labels.pod_name=POD_NAME
Para enumerar todos los eventos de programación de pods de tu carga de trabajo, usa el siguiente filtro
en la consulta anterior:
resource.labels.pod_name=~"POD_NAME_PREFIX-[a-f0-9]{7,10}-[a-z0-9]{5}"
Ver la latencia de extracción de imágenes
La latencia de extracción de imágenes de contenedor contribuye a la latencia de inicio de los pods en los casos en los que la imagen aún no está disponible en el nodo o debe actualizarse. Si optimizas la latencia de extracción de imágenes, reduces la latencia de inicio de la carga de trabajo durante los eventos de escalado horizontal del clúster.
Puedes consultar la tabla Eventos de extracción de imágenes de Kubelet para ver cuándo se extrajeron las imágenes de contenedor de la carga de trabajo y cuánto tiempo duró el proceso.

La latencia de extracción de imágenes está disponible en el campo jsonPayload.message
, que contiene un mensaje como el siguiente:
"Successfully pulled image "gcr.io/example-project/image-name" in 17.093s (33.051s including waiting). Image size: 206980012 bytes."
Ver la distribución de la latencia de las recomendaciones de escalado de HPA
La latencia de las recomendaciones de escalado de Horizontal Pod Autoscaler (HPA) para el destino de HPA es el tiempo transcurrido entre el momento en que se crean las métricas y el momento en que se aplica la recomendación de escalado correspondiente al servidor de la API. Si optimizas la latencia de las recomendaciones de escalado de HPA, reduces la latencia de inicio de tu carga de trabajo durante los eventos de escalado horizontal.
El escalado de HPA se puede ver en los dos gráficos siguientes:
Gráfico Distribución de latencia de recomendación de escalado de HPA: muestra los percentiles de latencia de recomendación de escalado de HPA (percentil 50, 95 y 99) que se calculan en función de las observaciones de las recomendaciones de escalado de HPA en intervalos de tiempo de 3 horas. Puedes usar este gráfico para lo siguiente:
- Conoce la latencia de tu recomendación de escalado de HPA de referencia.
- Identifica los cambios en la latencia de las recomendaciones de escalado de HPA a lo largo del tiempo.
- Correlaciona los cambios en la latencia de la recomendación de escalado de HPA con los eventos recientes. Puede seleccionar los eventos de la lista Anotaciones, situada en la parte superior del panel de control.

Gráfico Número de recomendaciones de escalado de HPA: muestra el número de recomendaciones de escalado de HPA que se han observado durante el intervalo de tiempo seleccionado. Usa el gráfico para las siguientes tareas:
- Conoce los tamaños de muestra de las recomendaciones de escalado de HPA. Las muestras se usan para calcular los percentiles de la distribución de la latencia de las recomendaciones de escalado automático horizontal de HPA en un intervalo de tiempo determinado.
- Correlaciona las recomendaciones de escalado de HPA con los nuevos eventos de inicio de pods y con los eventos de la herramienta de adaptación dinámica horizontal de pods. Puede seleccionar los eventos de la lista Anotaciones, situada en la parte superior del panel de control.

Ver problemas de programación de pods
Los problemas de programación de pods pueden afectar a la latencia de inicio de extremo a extremo de tu carga de trabajo. Para reducir la latencia de inicio de extremo a extremo de tu carga de trabajo, soluciona los problemas y reduce su número.
Estos son los dos gráficos disponibles para hacer un seguimiento de estos problemas:
- El gráfico Pods no programables, pendientes o fallidos muestra el número de pods no programables, pendientes o fallidos a lo largo del tiempo.
- El gráfico Contenedores con errores de espera exponencial, espera o disponibilidad muestra el número de contenedores en estos estados a lo largo del tiempo.
Ver el panel de latencia de inicio de los nodos
Para ver las métricas de latencia de inicio de los nodos, sigue estos pasos en la consolaGoogle Cloud :
Ve a la página Clústeres de Kubernetes.
Para abrir la vista Detalles del clúster, haz clic en el nombre del clúster que quieras inspeccionar.
Haz clic en la pestaña Observabilidad.
En el menú de la izquierda, selecciona Latencia de inicio.
Ver la distribución de la latencia de inicio de los nodos
La latencia de inicio de un nodo hace referencia a la latencia de inicio total, que mide el tiempo transcurrido desde el CreationTimestamp
del nodo hasta el estado Kubernetes node ready
. La latencia de inicio de los nodos se puede ver en los dos gráficos siguientes:
Gráfico Distribución de la latencia de inicio de nodos: este gráfico muestra los percentiles de latencia de inicio de nodos (percentil 50, 95 y 99) que se calculan en función de las observaciones de los eventos de inicio de nodos en intervalos de tiempo fijos de 3 horas (por ejemplo, de 00:00 a 03:00 y de 03:00 a 06:00). Puedes usar este gráfico para lo siguiente:
- Conocer la latencia de inicio de los nodos de referencia.
- Identifica los cambios en la latencia de inicio de los nodos a lo largo del tiempo.
- Correlacionar los cambios en la latencia de inicio de los nodos con eventos recientes, como las actualizaciones de clústeres o de grupos de nodos. Puede seleccionar los eventos de la lista Anotaciones, situada en la parte superior del panel de control.

Gráfico Número de inicios de nodos: muestra el número de nodos iniciados durante los intervalos de tiempo seleccionados. Puedes usar el gráfico para lo siguiente:
- Conocer los tamaños de muestra de los nodos, que se usan para calcular los percentiles de distribución de latencia de inicio de los nodos en un intervalo de tiempo determinado.
- Conocer las causas del inicio de los nodos, como las actualizaciones de grupos de nodos o los eventos del escalador automático de clústeres. Puede seleccionar los eventos de la lista Anotaciones situada en la parte superior del panel de control.

Ver la latencia de inicio de nodos concretos
Al comparar las latencias de los nodos individuales, puedes probar el impacto de varias configuraciones de nodos en la latencia de inicio de los nodos e identificar una configuración óptima en función de tus requisitos. Puedes ver la latencia de inicio de nodos concretos en el gráfico cronológico Latencia de inicio de nodos y en la lista asociada.
Usa el gráfico cronológico Latencia de inicio de nodos para correlacionar los inicios de nodos individuales con eventos recientes, como las actualizaciones de clústeres o de grupos de nodos. Puedes determinar las posibles causas de los cambios en la latencia de inicio en comparación con otros nodos. Puede seleccionar los eventos en la lista Anotaciones de la parte superior del panel de control.
Usa la lista Latencia de inicio de nodos para identificar los nodos concretos que han tardado más o menos tiempo en iniciarse. Puedes ordenar la lista por la columna Latencia. Cuando identifiques los nodos con la latencia de inicio más alta, podrás solucionar los problemas de degradación de la latencia correlacionando los eventos de inicio de los nodos con otros eventos recientes.

Para saber cuándo se creó un nodo concreto, consulta el valor del campo protoPayload.metadata.creationTimestamp
en el evento de creación del nodo correspondiente. Para ver el campo protoPayload.metadata.creationTimestamp
, ejecuta la siguiente consulta en Explorador de registros:
log_id("cloudaudit.googleapis.com/activity") AND
protoPayload.methodName="io.k8s.core.v1.nodes.create" AND
resource.labels.project_id=PROJECT_ID AND
resource.labels.cluster_name=CLUSTER_NAME AND
resource.labels.location=CLUSTER_LOCATION AND
protoPayload.response.metadata.name=NODE_NAME
Ver la latencia de inicio de un grupo de nodos
Si tus grupos de nodos tienen configuraciones diferentes, por ejemplo, para ejecutar diferentes cargas de trabajo, es posible que tengas que monitorizar la latencia de inicio de los nodos por separado en cada grupo de nodos. Al comparar las latencias de inicio de los nodos de tus grupos de nodos, puedes obtener información valiosa sobre cómo influye la configuración de los nodos en la latencia de inicio y, por lo tanto, optimizarla.
De forma predeterminada, el panel de control Latencia de inicio de nodos muestra la distribución de latencia de inicio agregada y las latencias de inicio de nodos individuales de todos los grupos de nodos de un clúster. Para ver la latencia de inicio de los nodos de un grupo de nodos específico, selecciona el nombre del grupo de nodos con el filtro $node_pool_name_var
situado en la parte superior del panel de control.
Siguientes pasos
- Consulta cómo optimizar el autoescalado de pods en función de las métricas.
- Consulta más información sobre cómo reducir la latencia de arranque en frío en GKE.
- Consulta cómo reducir la latencia de extracción de imágenes con Image streaming.
- Consulta información sobre la sorprendente economía de la optimización del autoescalado de pods horizontal.
- Monitoriza tus cargas de trabajo con la monitorización automática de aplicaciones.