Skip to main content

More Info:

Nodes In A Degraded State Are An Unknown Quantity And So May Pose A Security Risk

Risk Level

Medium

Address

Security

Compliance Standards

  • CIS GKE

Triage and Remediation

Remediation

Manual Steps

  1. List all node pools and identify those without auto-repair
    • Run on: any machine with gcloud configured and access to the project.
    For each NODE_POOL_NAME in the output, gather its management settings:
    Record which pools have "autoRepair": false or missing.
  2. Review workload criticality and disruption tolerance per node pool
    • For each node pool with auto-repair disabled, determine what runs on it (e.g., critical system workloads, stateful apps, batch jobs) and the tolerance for node reboots or replacement.
    • If the pool hosts critical, always-on, or security-sensitive workloads, plan to enable auto-repair unless there is a strong operational reason not to.
  3. Check for alternative health and repair mechanisms if you decide not to enable auto-repair
    • Confirm whether there are other processes that detect and remediate unhealthy nodes (e.g., external automation, strict SLOs, manual rotation).
    • If such mechanisms are weak, undocumented, or slow, favor enabling auto-repair to reduce the risk of long-lived degraded nodes.
  4. Plan maintenance window and communication for enabling auto-repair
    • Enabling auto-repair can trigger node recreation when nodes are deemed unhealthy, which may cause pod rescheduling and brief interruptions.
    • Ensure pod disruption budgets, readiness/liveness probes, and multi-zone/replicated deployments are in place so workloads tolerate node replacement.
  5. Enable node auto-repair on selected node pools
    • Run on: any machine with gcloud configured and access to the project.
    • For each node pool you decide should have auto-repair:
  6. Verify auto-repair is enabled for the intended node pools
    • Re-run for each updated node pool:
    • Confirm "autoRepair": true is present for all node pools where you decided to enforce auto-repair, and document any remaining exceptions with justification.
kubectl cannot enable or configure GKE node auto-repair because it is a managed control-plane / cloud provider setting applied at the node pool level, not a Kubernetes API object. To remediate this finding, make the change via the GCP console, gcloud CLI, or your IaC as described in the Manual Steps section.

Additional Reading: