More Info:
Nodes In A Degraded State Are An Unknown Quantity And So May Pose A Security RiskRisk Level
MediumAddress
SecurityCompliance Standards
- CIS GKE
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
List all node pools and identify those without auto-repair
- Run on: any machine with
gcloudconfigured and access to the project.
For eachNODE_POOL_NAMEin the output, gather its management settings:Record which pools have"autoRepair": falseor missing. - Run on: any machine with
-
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.
-
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.
-
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.
-
Enable node auto-repair on selected node pools
- Run on: any machine with
gcloudconfigured and access to the project. - For each node pool you decide should have auto-repair:
- Run on: any machine with
-
Verify auto-repair is enabled for the intended node pools
- Re-run for each updated node pool:
- Confirm
"autoRepair": trueis present for all node pools where you decided to enforce auto-repair, and document any remaining exceptions with justification.
Using kubectl
Using kubectl
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.Automation
Automation

