mi configuración
Tengo un clúster K8s de nodo físico donde contamino el nodo maestro para que también pueda actuar como trabajador. el nodo tiene Centos7 con un total de 512 GB de memoria. Estoy limitando mis experimentos a un grupo de nodos; una vez que se encuentre una solución, la probaré en mi clúster k8s a pequeña escala donde los servicios maestro y trabajador están en nodos separados.
lo que estoy tratando de hacer
Quiero monitorear la utilización de recursos a nivel de pod (CPU y memoria). Estoy lanzando un módulo que consumía memoria a una velocidad de 1 GBPS; en alrededor de 100 segundos, la utilización de la memoria alcanza los 100 GB y, en ese momento, la aplicación alcanza el estado estable. A partir de ese momento, sigue funcionando hasta que se mata con un gatillo.
Dónde estoy ahora con esto
Después de lanzar el servidor métrico k8s; Puedo hacer kubectl top pods y muestra la utilización de CPU y memoria por pod. Sin embargo, estos números de utilización no se actualizan con frecuencia. Traté de medir cuánto tarda k8s en actualizar esta telemetría y el intervalo de muestreo parece estar cerca de 1 minuto o 60 segundos.
Me cansé de buscar en https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/ para averiguar varios intervalos de muestreo. hay algunos parámetros que podrían afectar la tasa de muestreo de telemetría; pero están configurados en ~20 s (predeterminados) como máximo. No estoy cambiando ninguna configuración de Kubelet.
Mi pregunta
¿Por qué kubectl top pods tardan alrededor de un minuto en actualizar los números de utilización de recursos? ¿Cómo puedo reducir este intervalo y tener actualizaciones frecuentes?
¿Por qué kubectl top pods tardan alrededor de un minuto en actualizar los números de utilización de recursos?
Es porque la resolución predeterminada del servidor de métricas se establece en 60 s.
¿Cómo puedo reducir este intervalo y tener actualizaciones frecuentes?
Puede cambiar la resolución con el --metric-resolution=<duration> . Sin embargo, no se recomiendan valores de configuración inferiores a 15 s, ya que esta es la resolución de las métricas calculadas por Kubelet.
spec: containers: - command: - /metrics-server - --metric-resolution=15sReferencia: Con qué frecuencia se raspan las métricas