aws AWS Containers Blog ·

Amazon EKS Auto Mode automates node failure detection and repair

bloginfraawsengineeraws-eks
announcement

This post details how Amazon EKS Auto Mode automatically detects, diagnoses, and repairs node failures without manual intervention. It explains the interplay between the Node Monitoring Agent (NMA), which signals faults via Kubernetes node conditions, and Karpenter, which uses these signals to replace unhealthy nodes. The system groups detections into five monitoring conditions, with severities determining if a node is replaced or if an event is logged for visibility, and includes safety thresholds to prevent cascading failures.

  • EKS Auto Mode leverages NMA and Karpenter for automated node repair
  • Decoupled detection and remediation enhance reliability
  • Node Monitoring Agent categorizes faults by severity
  • Examples of terminal faults triggering node replacement
  • Repair cycle includes grace periods and safety gates
Notes (6)
  • EKS Auto Mode leverages NMA and Karpenter for automated node repair

    Amazon EKS Auto Mode automatically detects, drains, and replaces failing nodes using the Node Monitoring Agent (NMA) and Karpenter. The NMA translates low-level system signals into Kubernetes node conditions, which Karpenter consumes to initiate node replacement. On EKS Auto Mode, these components run automatically; for other EKS compute options, NMA can be installed as an add-on. The NMA runs as a systemd service baked into the AMI, ensuring continuous operation even during degraded pod scheduling.

  • Decoupled detection and remediation enhance reliability

    The Node Monitoring Agent detects faults across kernel, container runtime, networking, storage, and hardware, reporting them as Kubernetes node conditions. Karpenter, the compute controller, reads these conditions and performs node replacement as its sole repair action. This architecture, where the agent reports to the Kubernetes API and Karpenter acts upon it, ensures reliability through decoupling.

  • Node Monitoring Agent categorizes faults by severity

    The agent groups detections into five conditions: KernelReady, ContainerRuntimeReady, NetworkingReady, StorageReady, and AcceleratedHardwareReady. Faults are assigned either 'Condition-severity,' triggering a 'False' status and potential replacement, or 'Event-severity,' which logs a Kubernetes event for visibility without affecting node service. Condition-severity faults are terminal issues requiring replacement.

  • Examples of terminal faults triggering node replacement

    Terminal faults include hardware issues like GPU device-count mismatches or ECC errors, network problems such as a down VPC CNI process, and runtime failures like pods stuck in Terminating state. Event-severity issues, which remain informational, include bandwidth ceilings, EBS IOPS throttling, and GPU thermal warnings.

  • Repair cycle includes grace periods and safety gates

    Karpenter's repair policies define toleration windows for node conditions before repair initiates. For example, Accelerated Hardware Ready faults have a 10-minute window, while others have 30 minutes. A fleet-wide safety gate prevents repair if more than 20% of nodes in a NodePool or cluster are unhealthy, and repair is also paused during Amazon ARC zonal shifts.

  • Node replacement process and stateful workload considerations

    Once the toleration window is met and safety gates are passed, Karpenter taints the node, drains pods respecting Pod Disruption Budgets, terminates the instance, and launches a replacement. For stateful workloads, successful recovery relies on the workload's ability to restart from a checkpoint after the node is replaced and pods are rescheduled.

Read the original announcement →

https://aws.amazon.com/blogs/containers/under-the-hood-how-amazon-eks-auto-mode-detects-repairs-and-diagnoses-node-failures/

Related releases