nokia / CPU-Pooler

A Device Plugin for Kubernetes, which exposes the CPU cores as consumable Devices to the Kubernetes scheduler.
BSD 3-Clause "New" or "Revised" License
92 stars 22 forks source link

modify podhandling and webhook functionality #43

Closed balintTobik closed 4 years ago

TimoLindqvist commented 4 years ago

What is the background of this change ? There is no related issue so some description is needed why the change is necessary.

Levovar commented 4 years ago

the initial expectation of "status running == cgroups are created" has proven to be wrong during some 5G trial runs firstly, application might add a readyness check for their proper cgroup config. in which case we will never be ready cause we havent yet prepared the cgroups, but we never prepare the cgroups unless we are ready

but in addition to this, we have also seen some unexplained ready / not ready state fluctuation happening even without init containers, or readyness probes in the Pod so simply speaking K8s maintained state is not reliable enough for our purpose

instead, we should immediately and automatically try to adjust the cgroups when a Pod comes up. to avoid unnecessarily re-processing an already adjusted Pod, we will set an indication ourselves into the Pod annotation saying "I was already here"