I need to run a program that will take up about 60gb of memory on a node with 64gb of memory(windows node), and I set the memory limit to a large value (70GB) in yaml template.
My initial thought was that when physical memory was used up, the program would use virtual memory, which would degrade performance but was acceptable.
But in fact, I observed that the program threw an OOM exception when the entire machine still had about 3GB of memory left ( which is less than 70gb).
So my guess is that maybe the kubelet limits the sum of memory used by all pods when registering nodes, or some other memory limit.
I tried to search kubernetes source code and didn’t find some relevant logic. Do you know what the principle behind it is?