Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Enable preemption

Son Güncelleme:Oct 06, 2026

Küme kaynakları kısıtlı olduğunda, yüksek öncelikli görevler yetersiz kaynaklar nedeniyle çalıştırılamayabilir. Ön alım etkinleştirildiğinde, ACK Scheduler kaynak kullanılabilirliğini simüle eder ve düşük öncelikli pod'ları tahliye ederek bilgi işlem kaynaklarını boşaltır; bu sayede yüksek öncelikli görevler hızla başlatılabilir.

Başlamadan önce

PriorityClass, priorityClassName kavramlarını ve pod önceliğinin zamanlama ile tahliye sırasını nasıl etkilediğini anlamak için Pod önceliği ve ön alımı konusunu okuyun.

Ön alımın çalışma biçimi

Ön alım etkinleştirildiğinde, ACK Scheduler aşağıdaki prosedürü izler:

  1. Görev önceliğini belirtin: Pod yapılandırmalarına priorityClassName ekleyin.

    kube-proxy ve etcd gibi sistem bileşenleri genellikle system-node-critical PriorityClass değerini kullanır. Çoğu DaemonSet olarak çalışır ve varsayılan olarak tahliye edilmez.
  2. Ön alımı simüle edin: ACK Scheduler zamanlanamayan bekleyen bir pod algıladığında, düşük öncelikli pod'ların tahliye edilmesinin yeterli kaynağı boşaltıp boşaltmayacağını simüle eder.

  3. Düşük öncelikli pod'ları güvenli bir şekilde tahliye edin: ACK Scheduler ön alımı tetikledikten sonra kubelet, belirlenen pod'ları tahliye ederek yüksek öncelikli pod için kaynakları serbest bırakır.

  4. Tahliye edilen pod'ları yeniden zamanlayın: Deployments gibi denetleyiciler tahliye edilen pod'ları yeniden oluşturur ve bunları diğer düğümlere zamanlar. Kaynaklar hala yetersizse pod'lar beklemeye devam eder.

Ön alım ilkeleri

ACK Scheduler, PreemptionAlgorithm parametresi ile yapılandırılabilen aşağıdaki ön alım ilkelerini destekler.


İlke


Açıklama


Default


Varsayılan Kubernetes ön alım ilkesidir. Önce doğrudan zamanlamayı dener, kaynaklar yetersiz kaldığında düşük öncelikli pod'ların tahliyesini simüle eder. Bkz. Pod önceliği ve ön alımı.


ElasticQuota


ElasticQuotaTree temel alınarak ön alım gerçekleştirir. Bkz. ElasticQuota ilke ayrıntıları.


Auto


ElasticQuota önceliklidir; ElasticQuota etkili olmadığında Default ilkesine geri döner.


None


Ön alımı devre dışı bırakır.

Aşağıdaki şekil, ilkenin nasıl etkili olduğunu göstermektedir.

image

ElasticQuota ilke ayrıntıları

ElasticQuota ilkesi etkin olduğunda, ACK Scheduler ön alımı üç adımda gerçekleştirir:

  1. Ön alım listesini belirleyin: Normal görevlerin aksine, ACK Scheduler bir gang içindeki tüm bekleyen pod'ları tek bir ön alım listesinde birleştirir. Gang, yalnızca tüm pod'lar ön alım yoluyla zamanlanabiliyorsa işlenir. Herhangi bir pod yüksek önceliğe sahipse, tüm gang yüksek öncelikli olarak kabul edilir.

  2. Uygun düğümleri belirleyin: ACK Scheduler aday düğümleri belirler:

    • Gang içindeki birden fazla pod ön alım gerektiriyorsa, bir pod ile eşleşen herhangi bir düğüm aday havuzuna eklenir. ACK Scheduler ardından kalan pod'lar için kaynakları boşaltır.

    • Yalnızca bir pod ön alım gerektiriyorsa, ACK Scheduler Zamanlanamaz (Unschedulable) düğümleri filtreleyerek yetersiz veya uyumsuz kaynaklara sahip olanları belirler.

  3. Ön alımı simüle edin: ACK Scheduler uygun düğümlerden ön alıma uygun pod'ları filtreler. Bir pod, aşağıdaki iki koşul da karşılandığında uygundur:

    • Başka bir pod veya görev tarafından ön alıma tabi tutulmuyordur.

    • İlgili PodKesintiBütçeleri (PDB) kurallarına göre tahliye edilebilirdir.

    ACK Scheduler ardından ElasticQuotaTree kurallarını uygular:

    • Ön alımı gerçekleştiren pod bir Kota'ya aitse:

      • Mevcut Kota kullanımı Min garantisi seviyesinde veya altında ise: Pod, kendi Min garantisinin üzerindeki kaynakları kullanan diğer Kotalardan pod'ları ön alabilir.

      • Mevcut Kota kullanımı Min garantisini aşıyorsa: Pod yalnızca kendi Kotası içindeki daha düşük öncelikli pod'ları ön alabilir (kota içi ön alım).

    • Ön alımı gerçekleştiren pod herhangi bir Kota'ya ait değilse: Ön alıma izin verilmez.

    Ön alınacak pod'lar belirlendikten sonra, ACK Scheduler bunları kaldırıp ön alımı gerçekleştiren pod'u yeniden zamanlamayı simüle eder. Simülasyon başarılı olursa pod'lar tahliye edilir ve yeniden zamanlanır. Başarısız olursa ön alım sonlandırılır.

Ön alımı etkinleştirin

Zamanlayıcı parametrelerini özelleştirin ve preemptionAlgorithm değerini Default, ElasticQuota, Auto veya None olarak ayarlayın. Varsayılan değer Auto'dur.

Sonraki adımlar