Skip to main content

More Info:

Enable kubelet server certificate rotation.

Risk Level

Low

Address

Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • BSI C5 (Germany)
  • Brazil LGPD
  • CCPA / CPRA (California)
  • CIS Critical Security Controls v8
  • CIS EKS
  • CMMC 2.0
  • CSA Cloud Controls Matrix v4
  • DPDPA
  • Digital Operational Resilience Act (EU)
  • Essential 8
  • ISO/IEC 27017
  • ISO/IEC 27018
  • ISO/IEC 27701
  • KSA PDPL
  • MAS Technology Risk Management (Singapore)
  • MITRE ATT&CK (Cloud)
  • NIST SP 800-171
  • NYDFS 23 NYCRR 500
  • SWIFT Customer Security Controls Framework
  • Sarbanes-Oxley IT General Controls
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

Remediation

Manual Steps

  1. On every worker node, open the kubelet config file and enable the feature gate:
  2. On every worker node, ensure no conflicting flag is set in the systemd drop-in; remove any existing --rotate-kubelet-server-certificate setting:
  3. (Optional alternative to step 1 if you prefer flags instead of config file; still on every worker node) Append the flag to the kubelet args line:
  4. On every worker node, reload systemd and restart kubelet (this restarts the kubelet process, affecting node registration/Pods briefly):
  5. On any machine with kubectl access, verify kubelet config via the configz endpoint for each worker node (replace NODE_NAME with each node’s name from kubectl get nodes):
  6. On every worker node, confirm the running kubelet process includes the correct setting and no false override:
    Inspect the output to ensure either:
    • no --rotate-kubelet-server-certificate flag is present (so the config file controls it and configz shows RotateKubeletServerCertificate:true), or
    • if present, it is --rotate-kubelet-server-certificate=true and not false.
kubectl cannot be used to enable RotateKubeletServerCertificate because this setting is applied via kubelet host-level configuration on each worker node (for example /etc/kubernetes/kubelet/kubelet-config.json, /var/lib/kubelet/config.yaml, and the systemd unit drop-in). Make the changes directly on every worker node as described in the Manual Steps section and then restart the kubelet service.

Additional Reading: