2024-10-20Hünkar Döner

EKS Autoscaling: Karpenter vs Cluster Autoscaler

EKSKarpenterAutoscalingPerformance
E

EKS Autoscaling: Karpenter vs Cluster Autoscaler

Kubernetes'in en büyük vaatlerinden biri otomatik ölçeklendirmedir. Trafik arttığında sistem büyür, azaldığında küçülür. Yıllardır bu iş için standart araç Cluster Autoscaler (CA) idi. Ancak CA'nın bazı kısıtlamaları vardı. AWS, bu sorunu çözmek için Karpenter'i geliştirdi.

Bu yazıda, bu iki aracı karşılaştıracağız ve neden Karpenter'e geçmeniz gerektiğini anlatacağız.

Cluster Autoscaler (CA) Nasıl Çalışır?

CA, AWS'in "Auto Scaling Groups" (ASG) özelliğine bağımlıdır.

  1. Bir pod başlatılamaz ve "Pending" durumuna düşer.
  2. CA bunu fark eder ve bağlı olduğu ASG'ye "Bana 1 sunucu daha ver" der.
  3. ASG, önceden tanımlanmış şablona (Launch Template) uygun bir EC2 başlatır.

Dezavantajları:

  • Yavaş: Yeni bir node'un gelmesi ve hazır olması dakikalar sürebilir.
  • Esnek Değil: ASG'de hangi instance tipini (örn: m5.large) seçtiyseniz sadece onu açar. Küçük bir pod için bile büyük sunucu açabilir.

Karpenter Nasıl Çalışır?

Karpenter, ASG kullanmaz. Doğrudan EC2 filosu (Fleet) API'si ile konuşur.

  1. Pending pod'u fark eder.
  2. Pod'un kaynak ihtiyacını (CPU, RAM) ve kısıtlamalarını (örn: sadece Spot olsun, sadece ARM olsun) analiz eder.
  3. AWS envanterinden bu ihtiyacı karşılayacak en ucuz ve en uygun instance tipini bulur.
  4. Doğrudan o instance'ı başlatır ve kümeye bağlar.

Avantajları:

  • Çok Hızlı: Node'ları saniyeler içinde hazır eder (Just-in-time).
  • Maliyet Etkin: İhtiyaca tam uyan (Right-sized) sunucuyu seçer.
  • Bin Packing: Podları sıkıştırarak yerleştirir, node sayısını optimize eder.
  • Konsolidasyon: Trafik azaldığında, boşalan node'lardaki podları diğer node'lara taşıyıp boş node'u kapatarak tasarruf sağlar.

Hangisini Kullanmalı?

Yeni kurulan tüm Amazon EKS kümelerinde tartışmasız Karpenter öneriyoruz. Daha hızlı, daha ucuz ve daha akıllı bir ölçeklendirme sunar. Mevcut CA kullanan kümeleriniz için Karpenter'e geçiş (migration) oldukça kolaydır.