Skip to main content

More Info:

The eventRecordQPS setting caps the rate at which the kubelet records events. Setting it to an appropriate level ensures security-relevant events are captured without being dropped.

Risk Level

Medium

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. On every worker node – check how kubelet is configured
    • If you see --config=/var/lib/kubelet/config.yaml, it is using the config file (primary fix surface).
    • If you instead see --event-record-qps=... or no --config flag, it is using command-line arguments via systemd.
  2. On every worker node – edit the kubelet config file (config.yaml case) Open the file:
    Add or adjust the eventRecordQPS field at the top-level of the YAML to an appropriate value for your environment, for example:
    Save the file.
  3. On every worker node – edit the kubelet systemd drop-in (arguments case) If kubelet is not using --config, edit:
    In the Environment= line(s) that define kubelet arguments (commonly KUBELET_KUBEADM_ARGS or similar), add or update the --event-record-qps flag to an appropriate value, for example:
    Ensure there is only one --event-record-qps flag.
  4. On every worker node – reload systemd and restart kubelet (Kubelet restart is required and will temporarily disrupt the node’s workloads.)
  5. On every worker node – verify kubelet started cleanly
    Confirm it is active (running) and there are no repeated restart failures.
  6. On every worker node – verify the effective eventRecordQPS setting For config file–based kubelet:
    For argument-based kubelet:
kubectl cannot modify the kubelet’s eventRecordQPS setting because it is defined in host-level configuration (/var/lib/kubelet/config.yaml or the kubelet systemd unit) on each worker node. To remediate this finding, follow the guidance in the Manual Steps section on those nodes directly.