New Feature: Instance Type Filtering in Karpenter

We're excited to announce a significant enhancement to Karpenter, an intelligent Kubernetes autoscaling solution that automatically optimizes your infrastructure costs and performance. Since integrating Karpenter six months ago, it has helped our users automatically provision the right AWS instances for their workloads. Today, we're taking this automation to the next level by introducing Instance Type Filtering, giving you precise control over which AWS instances Karpenter can use when scaling your applications.

Romaric Philogène

Romaric Philogène

November 21, 2024 · 3 min read
New Feature: Instance Type Filtering in Karpenter - Qovery

#What is Karpenter?

For those new to our platform, Karpenter is an open-source node provisioning project that revolutionizes how Kubernetes clusters scale. Unlike traditional autoscalers that work with predefined node groups, Karpenter dynamically provisions exactly the right compute resources based on your workload demands.

Here's what makes Karpenter special:

  • It can launch nodes in seconds when your applications need them
  • It automatically finds the most cost-effective instance types for your workloads
  • It removes nodes when they're no longer needed, helping you save costs
  • It can handle diverse workload requirements, from CPU-intensive tasks to memory-heavy applications

With Karpenter, you no longer need to pre-provision node groups or worry about over/under-provisioning - it handles all of this automatically. Discover more about Karpenter.

#Introducing Instance Type Filtering

With our latest update, you can now restrict the types of instances Karpenter uses to deploy your applications. This feature provides two key benefits:

  1. Reduce Node Count: By using larger instances, you can consolidate your workloads onto fewer nodes, simplifying management and potentially reducing costs.
  2. Family-Specific Deployments: You can now limit deployments to specific EC2 instance families, ensuring your applications run on hardware that meets their specific requirements.

See it in action ⬆️

#How to Use Instance Type Filtering

The new filtering feature is available in the Cluster settings for all clusters with Karpenter enabled. You can filter instances based on:

  • Architecture: Choose between AMD64 and ARM64
  • Size: From small to 32xlarge instances
  • Categories/Families: Select from various optimized instance families including: Compute Optimized Storage Optimized Accelerated Computing and more
You can filter the type of instances on multiple criteria (CPU arch type, size, categories of instances..)
You can filter the type of instances on multiple criteria (CPU arch type, size, categories of instances..)

The visual filter interface makes it easy to select exactly which instance types you want to use, with real-time feedback showing you how many instance types match your criteria.

#Coming Soon: Consolidation Scheduling

We're not stopping here! We're already working on the next major feature for Karpenter: Consolidation Scheduling. This upcoming feature will allow you to optimize your NodePool hosting during specific time windows.

Figma Design for Karpenter Consolidation Feature
Figma Design for Karpenter Consolidation Feature

You'll be able to:

  • Set specific days for consolidation (e.g., Monday, Friday, Saturday, Sunday)
  • Define precise start times for the consolidation process
  • Set the duration of the consolidation window

This feature will be particularly useful for optimizing costs during off-peak hours while maintaining performance during high-traffic periods.

#Getting Started

To start using Instance Type Filtering:

  1. Navigate to your cluster's settings
  2. Ensure Karpenter is enabled for your cluster
  3. Look for the "Instance types scope" section
  4. Click "Edit" to access the visual filter interface
  5. Select your desired architectures, sizes, and instance families
  6. Save your changes
Clusters > Select Your Cluster with Karpenter > Resources Tab
Clusters > Select Your Cluster with Karpenter > Resources Tab

Remember to review the IAM permissions warning and ensure your Qovery user has the correct permissions before deploying your cluster with these new settings.

#Conclusion

Instance Type Filtering is a powerful addition to Karpenter that gives you more control over your Kubernetes infrastructure while maintaining the simplicity and efficiency that Karpenter is known for. We're excited to see how you'll use this feature to optimize your deployments, and we look forward to bringing you more improvements in the future.

Try out Instance Type Filtering today and let us know what you think! And stay tuned for the upcoming Consolidation Scheduling feature that will bring even more optimization capabilities to your clusters.

Your Favorite DevOps Automation Platform

Qovery is a DevOps Automation Platform Helping 200+ Organizations To Ship Faster and Eliminate DevOps Hiring Needs

Try it out now!
Your Favorite DevOps Automation Platform
Qovery white logo

Your Favorite DevOps Automation Platform

Qovery is a DevOps Automation Platform Helping 200+ Organizations To Ship Faster and Eliminate DevOps Hiring Needs

Try it out now!
KubernetesAWS