Skip to main content

More Info:

Verifies that the scheduler —bind-address is set to 127.0.0.1 so its metrics and health endpoints are not exposed on the network.

Risk Level

High

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. On every control plane node, back up the existing static pod manifest for the scheduler:
  2. On every control plane node, edit the scheduler static pod manifest to set the bind-address to 127.0.0.1:
    If the --bind-address flag is not present, add it under the command: list for kube-scheduler, for example:
    Save the file; kubelet will automatically restart the kube-scheduler pod when the manifest changes (expect a brief control-plane impact).
  3. On every control plane node, wait for the kube-scheduler pod to be recreated and running:
    Ensure the scheduler container shows a recent start time and is in running state.
  4. On every control plane node, verify the kube-scheduler process is now using the loopback bind address:
    Confirm the output includes --bind-address=127.0.0.1 and no other --bind-address value.
kubectl cannot modify the kube-scheduler bind address, because it is configured via the static pod manifest on each control plane node at /etc/kubernetes/manifests/kube-scheduler.yaml. To remediate this finding, make the change directly on the node as described in the Manual Steps section.