---
title: "Bölüm 3: Yüksek Yoğunluklu Kubernetes ve Karpenter ile Otomatik Ölçeklendirme — Bulut Ekonomisi | TinyCTO"
description: "Karpenter ile tam zamanında (JIT) düğüm tahsisi, Graviton ARM64 geçişi, Spot konsolidasyonu ve paketleme verimliliği."
image: "https://tinycto.tv/assets/cloud-economics/cloud_economics_manuals_og.jpg"
canonicalUrl: "https://tinycto.tv/tr/cloud-economics/manuals/03-karpenter-otomatik-olceklendirme"
locale: "tr"
---

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

## 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$ 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ı:

```yaml
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.

$$\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$ seviyesine kıyasla ortalama $\%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.

```json
{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "Bölüm 3: Yüksek Yoğunluklu Kubernetes ve Karpenter ile Otomatik Ölçeklendirme",
  "description": "Karpenter ile tam zamanında (JIT) düğüm tahsisi, Graviton ARM64 geçişi, Spot konsolidasyonu ve paketleme verimliliği.",
  "url": "https://tinycto.tv/tr/cloud-economics/manuals/03-karpenter-otomatik-olceklendirme",
  "inLanguage": "tr-TR",
  "author": {
    "@type": "Organization",
    "name": "TinyCTO.tv",
    "url": "https://tinycto.tv"
  },
  "publisher": {
    "@type": "Organization",
    "name": "TinyCTO.tv",
    "url": "https://tinycto.tv"
  }
}
```
