More Info:
Protect tuned kernel parameters from overriding kubelet default kernel parameter values.Risk Level
HighAddress
SecurityCompliance Standards
- CIS Kubernetes
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
On every worker node, check whether kubelet uses a config file and locate it:
If you see a flag like
--config=/var/lib/kubelet/config.yaml, you are using a config file (path may differ; below assumes/var/lib/kubelet/config.yaml). -
If using a kubelet config file, edit it to set
protectKernelDefaultstotrue:If there is noprotectKernelDefaultsline, add it under the mainkubeletConfigurationblock, for example: -
If instead kubelet is configured only via command-line flags (no
--config=flag inpsoutput), edit the systemd drop-in on each worker node:In the line that starts withKUBELET_SYSTEM_PODS_ARGS=, add or update:Save and exit. -
Reload systemd and restart kubelet on each worker node (this restarts the kubelet process and may briefly impact scheduling on that node):
-
Verify on each worker node that kubelet is now running with
protect-kernel-defaultsenabled:If using flags, ensure the output contains--protect-kernel-defaults=true.
If using a config file, confirm the file still hasprotectKernelDefaults: true:
Using kubectl
Using kubectl
kubectl cannot modify kubelet host-level configuration or process flags, so this finding cannot be fixed via the Kubernetes API. The correction must be made directly on each worker node by editing
/var/lib/kubelet/config.yaml or the kubelet systemd unit as described in the Manual Steps section.Automation
Automation

