GKE Kill Pod cuando la herramienta de monitoreo todavía muestra que tenemos memoria

GKE Kill Pod cuando la herramienta de monitoreo todavía muestra que tenemos memoria

Estoy probando GKE con sus gráficos de seguimiento predeterminados.
El resumen del clúster dice que cada nodo (n2-custom-4-8192) tiene 6,36 GB de memoria asignable.
En la página de detalles del nodo, puedo ver que el pico "Usado" es 4,19 cuando se elimina el pod.

¿Me falta algo? ¿O esto es un problema con el gráfico? 6,36 GB de memoria asignable

Pod muerto al usar 4,19 GB

Respuesta1

En este caso todo funciona según lo previsto. Supongo que te perdiste información sobre Eviction threshold.

Allocatablees el valor de Capacitymenos Reservedy Eviction Threshold.

En GKEdocumentaciónRecursos asignables de nodoPuede encontrar información sobre la asignación de recursos.

Algunos de los recursos de un nodo son necesarios para ejecutar los GKEcomponentes del nodo de Kubernetes necesarios para que ese nodo funcione como parte de su cluster. Como tal, puede notar una disparidad entre los recursos totales de su nodo (como se especifica en la documentación del tipo de máquina) y los allocatablerecursos del nodo en GKE. A medida que los tipos de máquinas más grandes tienden a ejecutar más containers(y, por extensión, más Pods), la cantidad de recursos que GKEse reservan Kubernetes componentsaumenta para las máquinas más grandes. Windows Server nodesTambién requiere more resourcesque un típico Linux node. Los nodos necesitan recursos adicionales para tener en cuenta la ejecución del sistema operativo Windows y los componentes de Windows Server que no se pueden ejecutar en contenedores.

Para inspeccionar los recursos asignables de nodo disponibles en un clúster, ejecute el siguiente comando:

$ kubectl describe node ${NodeName} | grep Allocatable -B 7 -A 6

El resultado devuelto contiene campos Capacidad y Asignable con medidas de almacenamiento efímero, memoria y CPU.

Si se desplaza un poco más abajo paraMemoria asignable y recursos de CPULeerás que los recursos asignables se calculan de la siguiente manera:

Allocatable = Capacity - Reserved - Eviction Threshold

Para los recursos de memoria, GKE reserva lo siguiente:

  • 255 MiB de memoria para máquinas con menos de 1 GB de memoria
  • 25% de los primeros 4GB de memoria
  • 20% de los siguientes 4 GB de memoria (hasta 8 GB)
  • 10% de los siguientes 8 GB de memoria (hasta 16 GB)
  • 6% de los siguientes 112 GB de memoria (hasta 128 GB)
  • 2% de cualquier memoria superior a 128 GB

información relacionada