Kümenizdeki pod yerleşimini kontrol etmek için binpack, yük bilinci olan zamanlama, öncelik alma ve diğer kube-scheduler davranışlarını özelleştirin.
Önkoşullar
Kubernetes 1,20 veya üzeri sürümü çalışan bir ACK Pro kümesi, ACK Edge Pro kümesi, ACK Lingjun kümesi veya ACK Serverless Pro kümesi oluşturulmuş olmalıdır. Kubernetes sürümünü güncellemek için kümeyi manuel olarak yükseltin.
Sınırlamalar
ACK Pro kümelerinde ve ACK Edge Pro kümelerinde özel parametreler için desteklenen kube-scheduler sürümleri, Kubernetes sürümüne göre aşağıda listelenmiştir:
kube-scheduler kurulu olan ACK Serverless Pro kümeleri ve ACK Lingjun kümeleri özel parametreleri destekler.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yordam
ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.
Clusters sayfasında yönetmek istediğiniz kümeyi bulun ve adına tıklayın. Sol gezinme bölmesinde Add-ons seçeneğine tıklayın.
-
Core Components sekmesinde Kube Scheduler bileşenini bulun ve Configuration seçeneğine tıklayın. Kube Scheduler Parameters iletişim kutusunda parametreleri yapılandırın.
Kullanılabilir parametreler kube-scheduler sürümüne göre değişir. Sürüme özgü özellikler için bkz. Container Service for Kubernetes:kube-scheduler.
Parametre
Açıklama
Tür
Geçerli değer
Varsayılan değer
Enable Virtual Node-based Pod Scheduling
Podların sanal düğümlerde düğüm yakınlığına ve pod yayılım kısıtlamalarına göre zamanlanıp zamanlanmayacağını belirtir.
bool
true
false
true
podMaxBackoffSeconds
Başarısız bir pod için zamanlama denemeleri arasındaki maksimum geri çekilme aralığı (saniye cinsinden). İki zamanlama denemesi arasındaki süre bu değeri aşmalıdır.
int
[1,100000]
10
Preferably Use Bin Packing During Pod Scheduling
Binpack algoritmasının etkinleştirilip etkinleştirilmeyeceğini belirtir.
Örnek yapılandırmalar için bkz. Özel binpack parametreleri.
bool
false
true
false
binpackPluginWeight
Binpack eklentisi düğüm puanının ağırlığı. Preferably Use Bin Packing During Pod Scheduling seçeneğinin etkinleştirilmesini gerektirir.
int
[1,100000]
100
binpackResourceWeight
Binpack eklentisi düğüm puanı hesaplamasında her kaynağın ağırlığı. Preferably Use Bin Packing During Pod Scheduling seçeneğinin etkinleştirilmesini gerektirir.
resourceName: string
resourceWeight: int
resourceName: yalnızca harfler, rakamlar, nokta (.), eğik çizgi (/) ve kısa çizgi (-).
resourceWeight: 1 ile 10000 arasında bir tamsayı.
cpu:1
memory:1
scorePluginWeights
Düğüm puanı hesaplaması için her bir puanlama eklentisinin ağırlığı.
NotNodeResourceFit eklenti ağırlığı, binpack eklenti ağırlığı ile çakışır. Bu parametre için Preferably Use Bin Packing During Pod Scheduling (Pods Are Evenly Distributed among Nodes When Unselected) seçeneğini belirlediyseniz NodeResourceFit ağırlığı ayarlamayın.
plugin: string
weight: int
Yalnızca plugin açılır listesindeki eklentiler kullanılabilir.
weight: 1 ile 10000 arasında bir tamsayı.
plugin: NodeAffinity
weight: 100
percentageOfNodesToScore
Pod zamanlaması için uygun düğümlerin yüzdesi.
Varsayılan değer: 0. 0 olarak ayarlandığında, küme boyutuna bağlı olarak düğümlerin %5–%50'si puanlanır.
int
[0,100]
0
Node scoring for GPU sharing
Paylaşılan GPU zamanlaması kullanılırken (AI paketi gerektirir), GPU hızlandırmalı podları daha yüksek bellek ve hesaplama isteğine sahip GPU'lara zamanlar.
bool
false
true
true
Load-aware scoring during pod scheduling (loadAwareResourceWeight)
Yük bilinci olan zamanlamanın etkinleştirilip etkinleştirilmeyeceğini belirtir. ack-koordinator bileşenini gerektirir.
bool
false
true
false
loadAwareThreshold
Bu parametre, düğüm filtreleme için eşik değerini belirtir.
Değer, resourceName ve resourceWeight alanlarından oluşur.
resourceName: Geçerli değerler cpu ve memory değerleridir.
threshold: Geçerli değerler 0 ile 100 arasındadır.
Varsayılan olarak bu parametre boş bırakılır; bu durum düğüm filtrelemeyi devre dışı bırakır.
resourceName: cpu
threshold: 80
loadAwareResourceWeight
Bu parametre, düğüm sıralaması için düğüm puanını hesaplamak üzere kullanılan kaynak ağırlığını belirtir. Bu parametre, Specifies whether to enable load-aware node scoring during pod scheduling seçeneğini belirledikten sonra kullanılabilir hale gelir.
Değer, resourceName ve resourceWeight alanlarından oluşur.
resourceName: resourceName parametresinin şeması doğrulanır. Değerler yalnızca
cpuveyamemoryolabilir.resourceWeight: Geçerli değerler 1 ile 100 arasındaki tamsayılardır.
cpu=1
memory=1
loadAwareAggregatedUsageAggregationType
Bu parametre, istatistikler için veri toplama türünü belirtir. Geçerli değerler:
avg: ortalama değeri hesaplar.
p50: istatistiklerin %50'sini hesaplar.
p90, p95 ve p99: istatistiklerin %90'ını, %95'ini ve %99'unu hesaplar.
enum
avg
p50
p90
p95
p99
avg
preemptionAlgorithm
ACK Scheduler, kaynak simülasyonu yoluyla düşük öncelikli podların tahliye edilip edilmeyeceğini belirleyerek yüksek öncelikli iş yüklerinin hızlı başlatılmasına öncelik verir. Desteklenen stratejiler:
Default: Kubernetes topluluk standardı öncelik alma
ElasticQuota: ElasticQuotaTree tabanlı kaynak öncelik alma
Auto: Küme teknik özelliklerine dayalı uyarlamalı öncelik alma ilkesi
None: Öncelik almayı devre dışı bırakır
enum
Default
ElasticQuota
Auto
None
Auto
enableReservation
Kaynak rezervasyonunun etkinleştirilip etkinleştirilmeyeceğini belirtir.
boolean
true
false
false
featureGates
Zamanlayıcı tarafından etkinleştirilen özellik kapıları. Sürüme özgü destek için bkz. kube-scheduler belgeleri.
string
Yok
ACK, açık kaynaklı Kubernetes ile aynı özellik kapılarını kullanır.
Aşağıdaki örnek, örnek bir binpack yapılandırmasını göstermektedir.
Özel binpack parametreleri
Binpack ve yayılım algoritmaları
Boyut | binpack | yayılım |
Zamanlama ilkesi |
|
|
Özellik | Düğümlerdeki kaynak parçalanmasını azaltır. |
|
Senaryolar | Düğüm kaynak kullanımını iyileştirmek için en uygun seçenektir. | Yüksek kullanılabilirlik gerektiren iş yükleri için en uygun seçenektir. |
Özel binpack parametrelerini yapılandırma
Preferably Use Bin Packing During Pod Scheduling seçeneğini belirleyin ve binpack eklentisi ağırlığını ayarlayın. Daha yüksek bir ağırlık, podların aynı düğümde birlikte konumlandırılma olasılığını artırır. Düğüm puanı hesaplaması için kaynak adlarını ve ağırlıklarını yapılandırın. Daha yüksek bir kaynak ağırlığı, o kaynağın pod zamanlaması üzerindeki etkisini artırır.
Add-ons sayfasının Core Components sekmesinde Kube Scheduler bileşenini bulun ve binpack parametrelerini yapılandırmak için Configuration seçeneğine tıklayın.
Parametre | Açıklama |
Preferably Use Bin Packing During Pod Scheduling | Binpack algoritmasını etkinleştirir. |
binpackPluginWeight | Binpack eklentisi düğüm puanının ağırlığı. Çoğu durumda varsayılan değeri kullanın. Pod zamanlaması beklendiği gibi gerçekleşmezse ağırlığı artırın (örneğin, 200). Bkz. binpack ağırlığı. |
Binpack düğüm puanı hesaplaması için kaynak adları ve ağırlıkları. | Bkz. MostAllocated stratejisi kullanılarak bin packing etkinleştirme.
|
Preferably Use Bin Packing During Pod Scheduling seçeneğini belirler ancak resourceName ve resourceWeight parametrelerini yapılandırmazsanız, düğüm puanı hesaplaması için aşağıda gösterilen varsayılan CPU ve bellek ayarları kullanılır. Varsayılanlar, resourceWeight değeri 1 olan resourceName cpu ve resourceWeight değeri 1 olan resourceName memory şeklindedir.

Referanslar
Podları istenen miktarlar yerine gerçek kaynak kullanımına göre zamanlamak için yük bilinci olan zamanlamayı etkinleştirin.