-
Notifications
You must be signed in to change notification settings - Fork 368
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CPUManager Support (allocate exclusive CPUs to containers) #4319
Comments
This relates heavily on the same findings as in #4255 . Essentially we need to figure out better way to "default" cgroup settings without hardcoding anything like we do in some places currently |
Thanks @jnummelin - Should I keep this issue open or close it in favor of #4255 and use that to track this feature also? |
I think leaving this open is fair, as this is a real blocker, i.e. there's no way to use CPUManager with k0s right now, unfortunately. (And I consider this a bug, since nobody expected CPUManager not to work with k0s.) |
@twz123 - Noted, I will leave it open |
To be clear, CPUManager can be used with k0s just not with |
Ah, good to know. Still, the hard coded cgroup related settings in k0s are something that needs to be addressed somehow. |
In my case (k0sctl version: v0.17.5), installFlags:
- --debug
- --disable-components=konnectivity-server,metrics-server
- --kubelet-extra-args='--cpu-manager-policy=static --kube-reserved=cpu=500m,memory=1Gi --kube-reserved-cgroup=system.slice --kubelet-cgroups=/system.slice/containerd.service' |
Correct! I'm also specifying those (I should have mentioned that my previous comment). |
The issue is marked as stale since no activity has been recorded in 30 days |
If you look at the issue #4234 I found a hack to allow override kubelet parameters. The default But you'll then be facing another problem I have not yet solved. Putting limits to a cgroup and running k0s inside this cgroup works but kubelet will still use the system limits and the eviction mechanism does not work as expected. |
The issue is marked as stale since no activity has been recorded in 30 days |
The issue is marked as stale since no activity has been recorded in 30 days |
The issue is marked as stale since no activity has been recorded in 30 days |
The issue is marked as stale since no activity has been recorded in 30 days |
Is your feature request related to a problem? Please describe.
Currently trying to bring a single node with CPUManager static policy with the following k0s.yaml:
I used this command for the installation: k0s install controller --profile custom-cpu --single -c /etc/k0s/k0s.yaml
But k0s is adding a conflicting parameter that won't allow the CPUManager policy to be applied, below is the eventual kubelet-config.yaml:
It is adding kubeReservedCgroup and kubeletCgroups and this seems to be hard-coded in the code:
With this the kubelet daemon can not start up, gives the following error:
run.go:74] "command failed" err="failed to validate kubelet configuration, error: invalid configuration: can't use reservedSystemCPUs (--reserved-cpus) with systemReservedCgroup
Describe the solution you would like
Support cpuManagerPolicy and reservedSystemCPUs in the kubelet configuration
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: