Skip to main content

> FINOPS // BÖLÜM 03

Bölüm 3: Yüksek Yoğunluklu Kubernetes ve Karpenter ile Otomatik Ölçeklendirme

Karpenter ile tam zamanında (JIT) düğüm tahsisi, Graviton ARM64 geçişi, Spot konsolidasyonu ve paketleme verimliliği.

Kanonik FinOps Kılavuzu #03|TinyCTO Cloud Bill Bible

Bölüm 3: Yüksek Yoğunluklu Kubernetes ve Karpenter ile Otomatik Ölçeklendirme

Karpenter ile tam zamanında (JIT) düğüm tahsisi, Graviton ARM64 geçişi, Spot konsolidasyonu ve paketleme verimliliği.

#1. Yönetici Özeti ve Problem Tanımı

Geleneksel Kubernetes Cluster Autoscaler (CAS), çalışan düğümleri katı Auto Scaling Group (ASG) yapılarına göre ölçeklendirir. Pod'lar zamanlanamadığında CAS, aşırı kaynak parçalanmasına yol açan önceden tanımlanmış düğüm boyutları tahsis eder: tek bir 500m CPU'luk pod, bir m5.4xlarge sunucusunun ayağa kalkmasını tetikleyebilir ve %85\%85 oranında atıl işlemci kapasitesine neden olabilir.

Karpenter, tam zamanında (Just-in-Time - JIT) düğüm tahsisini sunar. Önceden tanımlanmış ASG şablonlarını eşleştirmek yerine Karpenter, bekleyen pod gereksinimlerine göre uyarlanmış Graviton (ARM64) örnekleri, Spot örnekleri ve değişken sunucu türlerinin en uygun karışımını başlatmak için doğrudan bulut API'leriyle (AWS Fleet API) iletişim kurar.


#2. Karpenter NodePool Spesifikasyonu

ARM64 Graviton örneklerine, Spot havuzlarına ve otomatik düğüm konsolidasyonuna öncelik veren bir canlı ortam Karpenter NodePool yapılandırması:

apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: general-compute-finops
spec:
  template:
    spec:
      requirements:
        - key: kubernetes.io/arch
          operator: In
          values: ["arm64"] # Graviton3 / Graviton4 (%20 daha iyi fiyat/performans)
        - key: karpenter.sh/capacity-type
          operator: In
          values: ["spot", "on-demand"] # Spot tercih eder; yetersizse On-Demand'e döner
        - key: node.kubernetes.io/instance-type
          operator: In
          values: ["c7g.xlarge", "c7g.2xlarge", "m7g.xlarge", "m7g.2xlarge", "r7g.xlarge"]
      nodeClassRef:
        group: karpenter.k8s.aws
        kind: EC2NodeClass
        name: default-al2023
  disruption:
    consolidationPolicy: WhenEmptyOrUnderutilized
    consolidateAfter: 1m # Düşük kullanım tespit edildikten 60 saniye sonra pod'ları daha küçük düğümlere konsolide et
    expireAfter: 720h    # İşletim sistemi sapmalarını önlemek için 30 günlük düğüm rotasyonu

#3. Paketleme Verimliliği (Bin-Packing) ve Konsolidasyon Ekonomisi

Karpenter küme kullanımını sürekli izler. Trafik azaldığında:

  1. Pod'ların mevcut diğer düğümlere sığabileceği düşük kullanımlı düğümleri belirler.
  2. Daha küçük bir örnek tahsis eder (veya mevcut düğümlere boşaltır).
  3. Düşük kullanımlı düğümü izole eder ve kapatır; 60 saniye içinde EC2 işlemci maliyetini sonlandırır.
Paketleme Verimlilig˘i=∑Pod I˙stekleri (CPU / Bellek)∑Kullanılabilir Du¨g˘u¨m Kapasitesi (CPU / Bellek)×100\text{Paketleme Verimliliği} = \frac{\sum \text{Pod İstekleri (CPU / Bellek)}}{\sum \text{Kullanılabilir Düğüm Kapasitesi (CPU / Bellek)}} \times 100

Sağlıklı bir Karpenter kümesi, geleneksel statik kümelerdeki %35−%50\%35 - \%50 seviyesine kıyasla ortalama %82\%82'nin üzerinde CPU ve bellek kullanımı sağlar.


#4. En İyi Uygulamalar ve Değişmezler

  • Gerçekçi Kaynak İstekleri Belirleyin: Şişirilmiş CPU isteklerine sahip pod'lar verimli paketlemeyi engeller. Gerçek p95 kullanımına dayalı olarak istekleri doğru boyutlandırmak için Vertical Pod Autoscaler'ı (VPA) öneri modunda çalıştırın.
  • Topoloji Yayılma Kısıtlamaları (Topology Spread Constraints): Karpenter'ın tüm Spot örneklerini kesintiye yatkın tek bir erişilebilirlik alanına (AZ) yerleştirmesini engellemek için maxSkew: 1 ile topologySpreadConstraints uygulayın.
Yapay Zekâ Özeti — Bölüm 03: Bölüm 3: Yüksek Yoğunluklu Kubernetes ve Karpenter ile Otomatik Ölçeklendirme
AEO / GEO / Perplexity Indexable

Karpenter ile tam zamanında (JIT) düğüm tahsisi, Graviton ARM64 geçişi, Spot konsolidasyonu ve paketleme verimliliği.

Bölüm OdağıBölüm 03 kanonik FinOps prensipleri ve birim maliyet yönergeleri.
Temel KavramlarKarpenter NodePool • ARM64 Graviton • Bin-Packing Efficiency • Automated Consolidation
Olgunluk SeviyesiWALK (Orta Seviye)
AEO / Ajan KuralıCanlı ortamda maliyet anomalisinde P0 alarmları ve FOCUS 1.0 etiketleme zorunludur.