<p>When a pod is created but no resource limit is specified, which component is responsible to calculate or assign resource limit to that pod? Is that the kubelet or the Docker?</p>

HamiBU
<p>If a pod doesn't specify any resource limits, it's ultimately up to the Linux kernel scheduler on the node to assign CPU cycles or not to the process, and to OOM-kill either the pod or other processes on the node if memory use is excessive.  Neither Kubernetes nor Docker will assign or guess at any sort of limits.</p>

<p>So if you have a process with a massive memory leak, and it gets scheduled on a very large but quiet instance with 256 GB of available memory, it will get to use almost all of that memory before it gets OOM-killed.  If a second replica gets scheduled on a much smaller instance with only 4 GB, it's liable to fail much sooner.  Usually you'll want to actually set limits for consistent behavior.</p>
