
Al observar mi clúster de GKE 1.23 en "observabilidad", veo un uso de memoria superior al 200%. El desglose muestra que la mayor parte se realiza por v2k-system
espacio de nombres, que AFAIK es el componente interno de GKE. ¿Por qué utiliza más del doble de memoria de la que realmente solicita? Tengo mis propios pods intentando obtener memoria y fallan. Sospecho que se debe a que los pods del sistema v2k ocupan toda la memoria.
Respuesta1
Sí, tienes razón, es más del 100% y GKE interno.
El uso de memoria para todos los contenedores del clúster se divide por el total de solicitudes de memoria para esos contenedores. Esto puede ser más del 100% si el uso total excede la solicitud total.
Utilización de la memoria: La utilización de la memoria de los contenedores que se puede atribuir a un recurso dentro del período de tiempo seleccionado.
La métrica utilizada eskubernetes.io/container/memory/request_utilization. Esta API de métricas ofrece un conjunto básico de métricas para admitir el escalado automático y casos de uso similares. Esta API pone a disposición información sobre el uso de recursos para nodos y pods, incluidas métricas de CPU y memoria. Si implementas elAPI de métricasen su clúster, los clientes de la API de Kubernetes pueden consultar esta información.
Hay 2 tipos de memoria disponibles como se muestra a continuación:
1)Memoria desalojoes la memoria que se eliminará del recurso si el uso aumenta demasiado.
2)Memoria no desalojableel uso excede los límites, el contenedor puede ser cancelado. Para obtener más información sobre los límites de recursos, consulte y utilice Solicitudes y límitespuede ayudar a resolver su problema.
Se garantiza que un contenedor tendrá tanta memoria como solicite, pero no se le permitirá utilizar más memoria que su límite.Asignar recursos de memoria a contenedores y podspara más información.