Advanced Horizontal Pod Autoscaler (AHPA), Container Service for Kubernetes (ACK) içinde sunulan tahmine dayalı bir otomatik ölçeklendirme özelliğidir. Geçmiş ölçüm verilerini analiz ederek iş yükü talebini öngörür ve trafik artışları gerçekleşmeden önce pod'ları hazırlar. Bu sayede standart Kubernetes otomatik ölçeklendirmesindeki reaktif gecikmeyi ortadan kaldırır.
Arka Plan
Standart Kubernetes otomatik ölçeklendirme yaklaşımlarının her biri belirli dezavantajlar taşır:
| Yöntem | Sınırlama |
|---|---|
| Sabit pod sayısı | Yoğun olmayan saatlerde boşta kalan pod'lar kaynak israfına neden olur |
| Horizontal Pod Autoscaler (HPA) | Yalnızca kaynak kullanımı bir eşiği aştığında ölçeklendirme yapar; bu nedenle pod'lar talep arttıktan sonra hazır hale gelir |
| CronHPA | Her zaman dilimi için pod sayılarının manuel olarak tanımlanmasını gerektirir. Dakika bazlı granülerlikte tam bir günü kapsamak için 1.440 ayrı zamanlama gerekir ve trafik modelleri değiştiğinde güncellenmelidir |
AHPA, geçmiş verilerden öğrenerek bu sınırlamaları giderir. Talep geldikten sonra tepki vermek yerine, AHPA belirli ölçümlerin geçmiş değerlerine ve bir pod'un Ready durumuna geçmesi için harcadığı süreye dayanarak iş yükü dalgalanmalarını tespit eder. Bu sayede AHPA, önümüzdeki 24 saat için dakikada gereken doğru pod sayısını önceden sağlar; böylece trafik geldiğinde kapasite zaten yerinde olur.
Nasıl Çalışır
Desteklenen Ölçümler
AHPA, CPU, GPU, bellek, saniye başına sorgu (QPS), yanıt süresi (RT) ve dış ölçümlere dayalı olarak iş yüklerini ölçeklendirir.
Tahmin Mekanizmaları
AHPA iki tamamlayıcı tahmin mekanizması kullanır:
Proaktif tahmin — Gelecek talebi öngörmek ve periyodik kalıpları tespit etmek amacıyla geçmiş ölçüm verilerini analiz eder. Düzenli ve tekrarlayan trafik döngülerine sahip iş yükleri için uygundur.
Pasif tahmin — Ölçümleri gerçek zamanlı olarak izler ve koşullar değiştikçe kapasiteyi dinamik şekilde ayarlar.
Bu mekanizmalar birlikte çalışarak iş yükü dalgalanmalarının tespit doğruluğunu %95'in üzerine çıkarır.
Hizmet Bozulması
İş yükleri beklenmedik davranışlar sergilediğinde, AHPA dakika hassasiyetinde belirli zaman dilimleri için minimum ve maksimum pod sayıları tanımlamanıza olanak tanır. Bu değerler güvenlik tabanı ve tavanı olarak görev yapar.
Ölçeklendirme Hedefleri
AHPA üç ölçeklendirme mekanizmasıyla entegre çalışır:
| Ölçeklendirme hedefi | AHPA'nın kullanım şekli |
|---|---|
| Knative | Eşzamanlılık, QPS veya RT bazında ölçeklendirme yaparak sunucusuz senaryolardaki soğuk başlatma gecikmesini çözer |
| HPA | Standart HPA'yı tahmine dayalı mantıkla sarar, ilke yapılandırmasını basitleştirir ve reaktif gecikmeyi ortadan kaldırır |
| Deployment | Ara katman olarak HPA gerektirmeden Deployment'ları doğrudan ölçeklendirir |
Temel Yetenekler
| Yetenek | Ayrıntı |
|---|---|
| Tahmin hızı | İş yükü dalgalanmalarını milisaniyeler içinde öngörür |
| Ölçeklendirme hızı | Pod'ları saniyeler içinde hazırlar |
| Doğruluk | İş yükü dalgalanmalarını %95'ten fazla doğrulukla tespit eder |
| Zaman granülerliği | Dakika hassasiyetinde pod sayısı sınırlarını destekler |
Kullanım Senaryoları
Periyodik iş yükleri — Canlı yayın, çevrimiçi eğitim ve oyun platformları gibi öngörülebilir trafik döngülerine sahip uygulamalar.
Ani trafik yönetimi — Normal iş senaryolarında beklenmeyen trafik artışlarını absorbe etmek için sabit bir temel pod sayısı ile otomatik ölçeklendirmeyi birleştiren dağıtımlar.
Kapasite planlaması entegrasyonu — Pod hazırlama önerilerine ihtiyaç duyan sistemler. AHPA, tahmin sonuçlarının alınabilmesi ve kendi sistemlerinize entegre edilebilmesi için standart bir Kubernetes API'si sunar.