Kubernetes uses cAdvisor for monitoring pod usage of CPU, memory etc. In observation, it came out cAdvisor reporting RAM, which is not only hot and cold RAM as reported here: https://github.com/google/cadvisor/issues/913.
The issue is with kubernetes making use of the same for the purpose of implementing hard limit for quota and brings our POD as it exceeds memory consumption. This is a problem since the docker inside the POD is actually not consuming the memory reported. This can be verified using docker stats.
Is there a way to get around this? We want our pod to go down only when they are actually consuming more memory.
Unfortunately, there is no workaround in that situation. The only thing I can recommend you - add some reserve to the limits to avoid the situation.