Skip to main content

More Info:

Verifies that the scheduler —profiling argument is set to false so detailed profiling data is not exposed to potential attackers.

Risk Level

Medium

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. SSH to each control plane node
  2. Open the kube-scheduler static pod manifest for editing
  3. Set --profiling=false in the scheduler container args
    In the containers:- name: kube-schedulercommand: or args: list, ensure there is an entry exactly like:
    If a line --profiling=true (or any --profiling=) exists, change it to --profiling=false. Save and exit the editor.
    Operational impact: editing this file will cause the kubelet to restart the kube-scheduler static pod on this node.
  4. Wait for the kube-scheduler pod to restart and become Ready
    From any machine with kubectl access:
    Wait until the scheduler pod shows STATUS as Running and READY as 1/1, then Ctrl+C.
  5. Verify the scheduler process is running with --profiling=false
    On each control plane node:
    Confirm the output includes --profiling=false and does not include --profiling=true.
kubectl cannot modify the kube-scheduler static pod manifest or its process flags on the node. To remediate this finding, you must edit /etc/kubernetes/manifests/kube-scheduler.yaml directly on every control plane node; see the Manual Steps section for exact host-level instructions.