Kubernetes'te yükü karşılayan otomatik ölçekleme
Beceri rehberi

Kubernetes'te yükü karşılayan otomatik ölçekleme

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

Kubernetes'te HPA, VPA ve Cluster Autoscaler nasıl çalışır, hangi sırayla kurulur? Kaynak istekleri, metrikler, ayar önerileri ve sık hatalar.

Kubernetes'te ölçekleme neden katmanlı düşünülür?

Kubernetes'te uygulamanın yük altında ayakta kalması için kapasiteyi farklı yerlerde ayarlayabilirsiniz. Pod sayısını artırıp azaltmak yatay ölçekleme, bir pod'a verilen işlemci ve bellek miktarını değiştirmek dikey ölçekleme, kümenin düğüm (node) sayısını değiştirmek ise küme ölçeklemesidir. Her birinin görevi farklıdır ve en sağlam sonuç, bunların birbirini tamamlayacak biçimde kurulmasından gelir.

Otomatik ölçekleme, bu ayarları insan müdahalesi olmadan, ölçülen yüke göre yapar. Amaç yoğun saatlerde yetersiz kaynaktan doğan yavaşlama ve kesintiyi, sakin saatlerde ise boşta bekleyen kaynak maliyetini azaltmaktır. Bunun çalışması için önce kaynak modelinin sağlam anlaşılması gerekir; çünkü ölçekleme kararlarının tamamı pod'ların kaynak istekleri ve ölçülen kullanım üzerine kuruludur.

Temel: kaynak istekleri ve sınırları

Her konteyner için tanımlanan kaynak isteği, zamanlayıcının pod'u hangi düğüme yerleştireceğini belirleyen ve o pod için ayrılan miktardır. Sınır ise konteynerin kullanabileceği üst değerdir. Bu değerler ölçeklemenin zeminidir: yatay ölçekleyici, işlemci kullanımını isteğe oranla hesaplar; yanlış ya da eksik istek, yanlış ölçekleme kararı demektir.

Hatalı istek değerleri aşırı yüksek ya da düşük olduğunda zarar verir. Fazla yüksek istek kümede boşa kaynak ayırır, maliyeti artırır ve pod'ların yerleşmesini zorlaştırır. Fazla düşük istek ise pod'ların kaynak kıtlığında kesilmesine ya da düğümün aşırı yüklenmesine yol açar. İstek değerlerini tahminle değil, uygulamanın gerçek kullanım ölçümleriyle belirleyin; kullanım ölçüm araçları, hangi değerlerin makul olduğunu gösterir. Hizmet kalitesi sınıfları ve ad alanı düzeyindeki kota kuralları, kaynakların tüketimini düzenli tutar.

Yatay ölçekleme: Horizontal Pod Autoscaler (HPA)

HPA, bir iş yükünün (örneğin bir Deployment) kopya sayısını ölçülen bir metriğe göre otomatik artırır ve azaltır. Çalışması için kümede metrik sunan bileşenin (metrics-server) kurulu olması ve hedeflenen pod'ların kaynak isteklerinin tanımlı olması gerekir. Temel mantık şöyledir: HPA mevcut ortalama kullanımı hedef değerle karşılaştırır ve hedefe yaklaşmak için gerekli kopya sayısını hesaplar. Üst ve alt kopya sayısı sınırlarını siz tanımlarsınız.

Örneğin işlemci kullanımı hedefin üzerine çıktıkça kopyalar artar, yük azalınca belli bir sakinleşme süresinin ardından düşer. Bu sakinleşme (stabilizasyon) davranışı, dalgalı yükte kopya sayısının sürekli inip çıkmasını önler. HPA'nın karşılayamayacağı durumlar da vardır: başlatma süresi uzun bir uygulama ani yük artışına yetişemez; durum tutan, kopyalanamayan bir bileşen yatay ölçeklenmez. Bu durumlarda hazır bekleyen kopya payı ya da önceden ölçekleme düşünülür.

Özel ve harici metriklerle ölçekleme

İşlemci ve bellek her uygulama için doğru ölçüt değildir. Bir kuyruk işleyicisi için doğru yük göstergesi bekleyen mesaj sayısıdır; bir web arayüzü için saniyedeki istek sayısı ya da yanıt süresi olabilir. HPA, uygulamanın kendi ürettiği özel metriklerle ve kümenin dışındaki kaynaklardan gelen harici metriklerle de ölçekleyebilir. Bunun için metrikleri toplayan bir izleme sisteminin ve metriği Kubernetes'e sunan bir bağdaştırıcının kurulması gerekir.

Olay güdümlü ölçekleme araçları bu işi kolaylaştırır; kuyruk uzunluğu gibi kaynaklara göre iş yükünü hiç kopya kalmayacak kadar küçültüp yük gelince geri açabilirler. Metrik seçerken sorulacak soru şudur: bu metrik gerçek kullanıcı etkisinin öncül göstergesi mi? İşlemci kullanımı çoğu zaman yükün gecikmeli bir yansımasıdır; kuyruk uzunluğu ya da istek hızı daha erken sinyal verebilir.

Dikey ölçekleme: Vertical Pod Autoscaler (VPA)

VPA, bir pod'un kaynak isteklerini gerçek kullanıma göre önerir ve istenirse otomatik olarak günceller. Doğru istek değerini bulmak zor olduğundan, özellikle yeni bir uygulamada VPA'yı yalnızca öneri modunda çalıştırıp çıktıyı incelemek ve değerleri bilinçli uygulamak iyi bir başlangıçtır. Otomatik uygulama modunda ise pod'lar yeni değerlerle yeniden başlatılabilir; bu, kesinti toleransı olmayan iş yüklerinde dikkat gerektirir.

VPA çekirdek Kubernetes ile birlikte gelmeyen, ayrıca kurulan bir bileşendir. Önemli bir uyarı, VPA ile HPA'nın aynı kaynak metriği (örneğin işlemci) üzerinde birlikte karar vermesinin çakışmaya yol açabileceğidir. Genel çözüm, HPA'yı özel ya da harici metriğe bağlamak veya VPA'yı yalnızca öneri aracı olarak kullanmaktır. Hangi birleşimin desteklendiğini her zaman kullandığınız sürümün resmî dokümantasyonundan doğrulayın.

Küme ölçekleme: düğümleri sağlamak

Pod sayısı artsa bile kümede yer yoksa yeni pod'lar bekleme (Pending) durumunda kalır. Cluster Autoscaler, kaynak yetersizliğinden yerleşemeyen pod'ları fark edince bulut sağlayıcının düğüm grubuna yeni düğüm ekler; uzun süre boş kalan düğümleri ise güvenle boşaltıp kaldırır. Yani yatay ölçekleme pod sayısını, küme ölçekleme ise bunların oturacağı makineleri sağlar.

Pratik noktalar: yeni düğümün hazır olması zaman alır, bu yüzden ani yük artışlarında pod'lar bir süre beklemede kalabilir; düğüm gruplarının üst sınırı kapasite planınızla uyumlu olmalı; pod'ların yerleşim özellikleri (kaynak istekleri, yerleşim kuralları, kesinti bütçeleri) düğüm boşaltma kararlarını etkiler. Kısa süreli ani yükler için küme içinde düşük öncelikli yedek pod'lar tutup yük gelince bunların yerini boşaltmak, düğüm bekleme süresini gizlemenin bilinen bir yoludur.

Yük senaryosu, ayar ve sık yapılan hatalar

Ölçeklemeyi canlıya almadan önce yük senaryolarıyla sınayın: kademeli artan yük, ani sıçrama ve ani düşüş. Her senaryoda kopya sayısının, yanıt süresinin ve düğüm sayısının nasıl değiştiğini izleyin; ayarları (hedef kullanım, sakinleşme süresi, alt ve üst sınırlar) buna göre düzeltin.

  • Kaynak isteği tanımlamamak: HPA ölçemez, karar veremez.
  • İsteği gerçek kullanımdan çok yüksek tutmak: Ölçekleme geç tetiklenir, maliyet artar.
  • Alt sınırı asgariye indirip yüksek erişilebilirlik beklemek: Kesinti riski büyür.
  • HPA ve VPA'yı aynı metrikte birlikte çalıştırmak: Salınım ve çakışma yaratır.
  • Üst sınırı koymamak: Hatalı bir döngü bütçeyi tüketebilir.
  • Maliyeti izlememek: Ölçekleme ve maliyet birlikte izlenmelidir.

Öğrenme sırası: önce kaynak modeli ve ölçüm, sonra HPA, ardından özel metrikler, VPA'yı öneri modunda deneyin ve en sonda küme ölçekleme ile maliyet ayarına geçin.

Bu beceriyi Mindset programlarında nerede çalışırsınız?

Kubernetes Otomatik Ölçekleme (HPA, VPA, Cluster Autoscaler) programı Ölçekleme Temelleri ve Kaynak Modeli, Horizontal Pod Autoscaler, Özel ve Harici Metriklerle Ölçekleme, Vertical Pod Autoscaler, Cluster Autoscaler ve Düğüm Sağlama, Yük Senaryoları, Maliyet ve Ayar Çalışması modüllerinden oluşur. Kubernetes Kaynak Yönetimi ve Otomatik Ölçekleme programı ise Kubernetes Kaynak Modeli ve Scheduler Davranışı, QoS Sınıfları ve Namespace Yönetişimi, Yatay Otomatik Ölçekleme (HPA), Dikey Ölçekleme (VPA) ve Küme Ölçekleme, Maliyet, Güvenilirlik ve Uygulama Planı gibi başlıkları içerir.

İlgili Mindset programı

Kubernetes Otomatik Ölçekleme (HPA, VPA, Cluster Autoscaler)

Sık sorulanlar

Sık sorulan sorular

HPA ile VPA aynı anda kullanılabilir mi?

Aynı kaynak metriği üzerinde birlikte karar vermeleri çakışmaya yol açabilir. Güvenli yaklaşım, HPA'yı özel ya da harici bir metriğe bağlamak ve VPA'yı öneri modunda tutmaktır. Desteklenen birleşimler sürüme göre değiştiğinden, kullandığınız sürümün resmî dokümantasyonunu kontrol edin.

HPA neden hiç ölçeklemiyor?

En sık nedenler şunlardır: metrik sunan bileşen kurulu değil ya da erişilemiyor, hedeflenen pod'larda kaynak isteği tanımlı değil, hedef değer gerçek kullanıma göre çok yüksek ayarlanmış ya da kopya sayısı üst sınıra zaten ulaşmış. HPA'nın durumunu ve olaylarını incelemek nedeni genellikle ortaya çıkarır.

Cluster Autoscaler ile HPA arasındaki fark nedir?

HPA pod kopya sayısını ayarlar. Cluster Autoscaler ise bu pod'ların yerleşebileceği düğümleri ekler ya da kaldırır. HPA yeni pod ister, kümede yer yoksa pod'lar beklemede kalır ve Cluster Autoscaler yeni düğüm ekler. Birbirini tamamlarlar, birbirinin yerine geçmezler.

Otomatik ölçekleme maliyeti düşürür mü?

Doğru kurulduğunda sakin saatlerde kaynak kullanımını azaltarak maliyeti düşürebilir. Ancak yanlış ayarlanmış alt sınır, yüksek kaynak isteği ya da üst sınırsız ölçekleme maliyeti artırabilir. Ölçeklemeyi her zaman kullanım ve maliyet izlemesiyle birlikte kurun.

Kubernetes Otomatik Ölçekleme: HPA, VPA ve Küme