Azure with Karpenter Spot Optimization Available in v1.22.2+
This guide covers Azure-specific implementation details for Spot Optimization using Karpenter. For general information about Spot Optimization, see the main overview.
This feature is currently available for Azure AKS clusters with Karpenter installed only.
How It Works
Karpenter Integration
ScaleOps Spot Optimization requires Karpenter to be properly installed and configured on your Azure cluster. The integration leverages Karpenter’s NodePool CR to create and manage spot and on-demand node pools.
Before using Spot Optimization, ensure Karpenter is properly installed and configured on your Azure cluster. For detailed installation instructions, see the Karpenter Installation Guide.
Instance Type Selection
ScaleOps works with Karpenter’s instance type selection to ensure optimal spot instance availability:
- Leverages Karpenter’s built-in spot instance type selection
- Maintains compatibility with your existing instance type requirements
- Automatically handles spot instance interruptions through Karpenter’s consolidation
Limitations
Prerequisites
- Azure AKS with Karpenter installed and NodePool CR
- Otherwise, the feature will be disabled
Workload Support
- Currently only supports Deployments
Existing Configuration Constraints
- Workloads with existing required affinity, node selector or topology spread constraints on the lifecycle label will not be optimized (shown as optimization gap in the workload table and workloads overview)
- Workloads that cannot run on any Karpenter node pool will not be optimized (shown as optimization gap)
Scheduling Dependencies
- ScaleOps relies on Karpenter consolidation for enforcing spot percentage scheduling on running pods
- If Karpenter determines that scheduling on Spot isn’t effective enough, or if Karpenter consolidation is disabled, the actual scheduling on Spot may be delayed
- ScaleOps always ensures the required percentage on On-Demand is enforced, regardless of Karpenter’s decisions
Increased Max Nodes Limits
Since ScaleOps creates mirrored node pools, the total limit across both original and mirrored pools effectively doubles your cluster’s max node capacity.