@@ -335,11 +335,18 @@ The `distribute-cpus-across-cores` option can be enabled by adding
335
335
It cannot be used with `full-pcpus-only` or `distribute-cpus-across-numa` policy
336
336
options together at this moment.
337
337
338
- The `strict-cpu-reservation` option can be enabled by adding `strict-cpu-reservation=true` to
339
- the CPUManager policy options.
338
+ The `reservedSystemCPUs` parameter in [KubeletConfiguration](/docs/reference/config-api/kubelet-config.v1beta1/),
339
+ or the deprecated kubelet command line option `--reserved-cpus`, defines an explicit CPU set for OS system daemons
340
+ and kubernetes system daemons. More details of this parameter can be found on the
341
+ [Explicitly Reserved CPU List](/docs/tasks/administer-cluster/reserve-compute-resources/#explicitly-reserved-cpu-list) page.
342
+
343
+ By default this isolation is implemented only for guaranteed pods with integer CPU requests not for burstable and best-effort pods
344
+ (and guaranteed pods with fractional CPU requests). Admission is only comparing the cpu requests against the allocatable cpus.
345
+ Since the cpu limit are higher than the request, the default behaviour allows burstable and best-effort pods to use up the capacity
346
+ of `reservedSystemCPUs` and cause host OS services to starve in real life deployments.
340
347
341
348
If the `strict-cpu-reservation` policy option is enabled, the static policy will not allow
342
- workloads to use the CPU cores specified in `reservedSystemCPUs`.
343
- The `reservedSystemCPUs` defines an explicit CPU set for OS system daemons and kubernetes
344
- system daemons. More details of this parameter can be found on the
345
- [Explicitly Reserved CPU List](/docs/tasks/administer-cluster/reserve-compute-resources) page .
349
+ any workload to use the CPU cores specified in `reservedSystemCPUs`.
350
+
351
+ The `strict-cpu-reservation` option can be enabled by adding `strict-cpu-reservation=true` to
352
+ the CPUManager policy options followed by removing the `/var/lib/kubelet/cpu_manager_state` file and restart kubelet .
0 commit comments