Karpenter adds support for Amazon ARC zonal shift in EKS

Amazon EKS now supports ARC zonal shift and autoshift through Karpenter, enhancing application availability by automating traffic redirection from impaired AZs.

Amazon Elastic Kubernetes Service (Amazon EKS) has enhanced its capabilities by integrating support for Amazon Application Recovery Controller (ARC) zonal shift and zonal autoshift through the open-source Karpenter project, which is utilized for compute provisioning. ARC provides management and coordination of application recovery across AWS Regions and Availability Zones (AZs). This new feature aims to improve the availability of Kubernetes applications by automating the redirection of in-cluster network traffic away from any impaired AZ.

Many customers deploy highly available applications on Amazon EKS across multiple AZs to avoid single points of failure. The introduction of ARC zonal shift allows for temporary mitigation of AZ impairments by rerouting network traffic away from affected zones. For a seamless and automated experience, users can authorize AWS to handle this process via ARC zonal autoshift, which includes practice runs to ensure that clusters operate correctly even with one less AZ.

When a zonal shift is initiated for an EKS cluster, Karpenter will cease provisioning new capacity in the affected AZ, suspend voluntary disruptions such as consolidation and drift for nodes within that zone, and prevent voluntary disruptions in healthy zones if they rely on scheduling pods to the impaired zone. Pods that have specific scheduling requirements, such as volume affinities tied to the impaired zone, will not trigger new launch attempts. Once the zonal shift expires or is canceled, Karpenter will revert to its regular operations.

This feature in Karpenter is compatible with both manual zonal shifts and zonal autoshifts. No custom ARC resources are necessary since Karpenter directly integrates with the existing EKS cluster ARC resource. To enable zonal shift support, users need to adjust the ENABLE_ZONAL_SHIFT setting in their Karpenter configuration. For further information, users can refer to the Karpenter and ARC zonal shift documentation.