лимиты в контейнерах (не пинниг) ограничивают потребление по времени, а не по конкретному процу
допустим одно ядро 1000Mhz (типа CPU limut = 1). допустм 80 ядер итого 80 времени на сервер. кружечка 2
т.е. процее поработает 0.025 на каждом из ядер и это при справедливом шедуленге и отсутствии накладных расходов (а это всегда не так).
+ если лимиты и реквесты разные будет еще веселее.
на той же ноде с 80 ядрами, допустим если она пустая и там только наш под. Мы дали реквестов и лимитов 1000m. То есть 1024 cpu shares и cfs_quota_us / cfs_period_us = 1.
Допустим там еще kubelet и 20 системных процессов также имеют cpu shares по 1024 (умолчание)
В итоге все эти 80 ядер будут разделены между 20 системными процессами и нашим подиком на равные части. То есть каждому процессу дадут условно ~ 3 ядра (80 / ~20) в попугаях и нашему поду в том числе. При этом мы ограничили лимит на 1000m (cfs_quota_us / cfs_period_us = 1). В итоге ядро будет тротлить наш подик только в путь, поскольку по cpu.shares он может кушать 3 ядра, а вот квота ему этого не будет давать делать