How Node Groups Work
By default, node groups in Porter use a fixed instance type approach. When you create a node group, you select a specific machine type (e.g., t3.xlarge with 4 CPU, 16GB RAM) and Porter scales by adding or removing instances of that exact type. While this works well for predictable workloads, it often leads to resource fragmentation. Let’s look at an example. Say you’re running a web application with 8 replicas, each needing:- 2.5 CPU cores
- 4GB RAM
- Total requirements: 20 CPU cores and 32GB RAM
Enabling and Configuring Cost Optimization
To enable cost optimization for a node group:- Navigate to your cluster’s infrastructure settings
- Under node groups, find the node group you want to optimize
- Click “Enable Cost Optimization” in the top right corner
- Set your maximum CPU cores limit to prevent unexpected scaling. This helps prevent unexpected cost increases by setting a cap.


Best Practices
Health Checks Required: For production applications, ensure proper health checks are configured before scheduling them on cost-optimized node groups. This ensures your applications can be safely rescheduled on new nodes without causing any disruption as nodes are reshuffled.Limitations
The following node group configurations should continue using fixed instance types until we support cost optimization for them:- GPU instances (e.g., instances with NVIDIA GPUs)
- Spot instances
- Instances in public subnets
- Instances with specialized hardware requirements