Azure Kubernetes Service (AKS) kümesine Azure Spot düğüm havuzu ekleme
Bu makalede, mevcut bir Azure Kubernetes Service (AKS) kümesine ikincil spot düğüm havuzu ekleyebilirsiniz.
Spot düğüm havuzu, Azure Spot Sanal Makine ölçek kümesi tarafından desteklenen bir düğüm havuzudur. AKS kümenizdeki Spot VM'ler sayesinde, önemli maliyet tasarruflarıyla unutilized Azure kapasitesinden yararlanabilirsiniz. Kullanılabilir unutulmuş kapasite miktarı düğüm boyutu, bölge ve günün saati gibi birçok faktöre göre değişir.
Spot düğüm havuzu dağıttığınızda Azure, kullanılabilir kapasite varsa Spot düğümlerini ayırır ve spot düğüm havuzunu tek bir varsayılan etki alanında destekleyen bir Spot ölçek kümesi dağıtır. Spot düğümleri için SLA yoktur. Yüksek kullanılabilirlik garantisi yoktur. Azure'ın kapasiteye geri ihtiyacı varsa, Azure altyapısı Spot düğümlerini çıkartır.
Spot düğümler kesintileri, erken sonlandırmaları veya çıkarmaları işleyebilen iş yükleri için mükemmeldir. Örneğin, toplu işleme işleri, geliştirme ve test ortamları gibi iş yükleri ve büyük işlem iş yükleri spot düğüm havuzunda zamanlamak için iyi adaylar olabilir.
Başlamadan önce
- Bu makalede, Kubernetes ve Azure Load Balancer kavramları hakkında temel bilgiler yer alır. Daha fazla bilgi için bkz . Azure Kubernetes Service (AKS) için Kubernetes temel kavramları.
- Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Spot düğüm havuzu kullanmak üzere bir küme oluşturduğunuzda, kümenin düğüm havuzları ve Standart SKU yük dengeleyici için Sanal Makine Ölçek Kümeleri kullanması gerekir. Kümenizi oluşturduktan sonra bu öğreticide ele alınan başka bir düğüm havuzu da eklemeniz gerekir.
- Bu makale, Azure CLI 2.14 veya sonraki bir sürümünü çalıştırmanızı gerektirir. Sürümü bulmak için
az --version
komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.
Sınırlamalar
Spot düğüm havuzuyla AKS kümeleri oluşturup yönetirken aşağıdaki sınırlamalar geçerlidir:
- Spot düğüm havuzu varsayılan düğüm havuzu olamaz, yalnızca ikincil havuz olarak kullanılabilir.
- Denetim düzlemini ve düğüm havuzlarını aynı anda yükseltemezsiniz. Kontrol düzlemini ve kalan düğüm havuzlarını aynı anda yükseltmek için bunları ayrı olarak yükseltmeniz veya Spot düğüm havuzunu kaldırmanız gerekir.
- Spot düğüm havuzu Sanal Makine Ölçek Kümeleri kullanmalıdır.
- Oluşturma işleminden sonra veya
SpotMaxPrice
değiştiremezsinizScaleSetPriority
. - ayarlanırken
SpotMaxPrice
, değer -1 veya en fazla beş ondalık basamak içeren pozitif bir değer olmalıdır. - Spot düğüm havuzu etiketine
kubernetes.azure.com/scalesetpriority:spot
,kubernetes.azure.com/scalesetpriority=spot:NoSchedule
tint'e ve sistem podlarının benzeşimsizliğine sahiptir. - Spot düğüm havuzunda iş yüklerini zamanlamak için ilgili bir tolerans ve bencelik eklemeniz gerekir.
AKS kümesine Spot düğüm havuzu ekleme
Mevcut bir kümeye Spot düğüm havuzu eklerken, birden çok düğüm havuzu etkinleştirilmiş bir küme olmalıdır. Birden çok düğüm havuzu etkinleştirilmiş bir AKS kümesi oluşturduğunuzda, varsayılan olarak ile bir priority
Regular
düğüm havuzu oluşturursunuz. Spot düğüm havuzu eklemek için priority
değeri olarak belirtmeniz Spot
gerekir. Birden çok düğüm havuzuyla AKS kümesi oluşturma hakkında daha fazla bilgi için bkz . Birden çok düğüm havuzu kullanma.
komutunu kullanarak
az aks nodepool add
ile birpriority
Spot
düğüm havuzu oluşturun.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name spotnodepool \ --priority Spot \ --eviction-policy Delete \ --spot-max-price -1 \ --enable-cluster-autoscaler \ --min-count 1 \ --max-count 3 \ --no-wait
Önceki komutta priority
, düğüm Spot
havuzunu Spot düğüm havuzu yapar. eviction-policy
parametresi, varsayılan değer olan olarak ayarlanırDelete
. Çıkarma ilkesini Delete
olarak ayarladığınızda, düğüm havuzunun temel ölçek kümesindeki düğümler çıkarıldığında silinir.
Çıkarma ilkesini Deallocate
olarak da ayarlayabilirsiniz. Bu, temel alınan ölçek kümesindeki düğümlerin çıkarma sırasında durdurulmuş serbest bırakılmış duruma ayarlandığı anlamına gelir. Durdurulmuş serbest bırakılmış durumdaki düğümler işlem kotanıza göre sayılır ve küme ölçeklendirme veya yükseltme ile ilgili sorunlara neden olabilir. priority
ve eviction-policy
değerleri yalnızca düğüm havuzu oluşturma sırasında ayarlanabilir. Bu değerler daha sonra güncelleştirilemez.
Önceki komut, Spot düğüm havuzlarıyla kullanmanızı önerdiğimiz küme otomatik ölçeklendiricisini de etkinleştirir. Kümenizde çalışan iş yüklerine bağlı olarak, küme otomatik ölçeklendiricisi düğüm sayısını yukarı ve aşağı ölçeklendirir. Spot düğüm havuzları için küme otomatik ölçeklendiricisi, çıkarma işleminden sonra hala daha fazla düğüm gerekiyorsa düğüm sayısını artırır. Bir düğüm havuzunun sahip olabileceği en fazla düğüm sayısını değiştirirseniz, küme otomatik ölçeklendiricisiyle ilişkili değeri de ayarlamanız maxCount
gerekir. Küme otomatik ölçeklendiricisi kullanmıyorsanız, çıkarma sonrasında Spot havuzu sonunda 0'a düşer ve ek Spot düğümleri almak için el ile işlem yapılmasını gerektirir.
Önemli
Yalnızca spot düğüm havuzlarında toplu işleme işleri ve test ortamları gibi kesintileri işleyebilen iş yüklerini zamanlayın. Spot düğüm havuzunuzda yalnızca düğüm çıkarma işlemlerini işleyebilen iş yüklerinin Spot düğüm havuzunda zamanlandığından emin olmak için tonlamalar ve toleranslar ayarlamanızı öneririz. Örneğin, yukarıdaki komut öğesinin kubernetes.azure.com/scalesetpriority=spot:NoSchedule
taint değerini ekler, bu nedenle bu düğümde yalnızca ilgili toleransa sahip podlar zamanlanır.
Spot düğüm havuzunu doğrulama
komutunu kullanarak
az aks nodepool show
düğüm havuzunuzun eklendiğini doğrulayın ve öğesininscaleSetPriority
olduğunuSpot
onaylayın.az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --name spotnodepool
Spot düğümünde çalışacak bir pod zamanlama
Spot düğümde çalıştırılacak bir pod zamanlamak için Spot düğümünüzün uygulandığı taint'e karşılık gelen bir tolerans ve düğüm benzitesi ekleyebilirsiniz.
Aşağıdaki örnekte, YAML dosyasının, ve düğüm benzimi kurallarıyla requiredDuringSchedulingIgnoredDuringExecution
önceki adımda kullanılan etikete kubernetes.azure.com/scalesetpriority=spot:NoSchedule
kubernetes.azure.com/scalesetpriority=spot
karşılık gelen tolerasyonu ve preferredDuringSchedulingIgnoredDuringExecution
düğüm benşimine karşılık gelen toleransı tanımlayan bir bölümü gösterilmektedir:
spec:
containers:
- name: spot-example
tolerations:
- key: "kubernetes.azure.com/scalesetpriority"
operator: "Equal"
value: "spot"
effect: "NoSchedule"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: "kubernetes.azure.com/scalesetpriority"
operator: In
values:
- "spot"
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: another-node-label-key
operator: In
values:
- another-node-label-value
Bu tolerans ve düğüm benzitesine sahip bir pod dağıttığınızda Kubernetes, düğümlerde taint ve etiket uygulanmış podu başarıyla zamanlar. Bu örnekte aşağıdaki kurallar geçerlidir:
- Düğüm anahtarına
kubernetes.azure.com/scalesetpriority
sahip bir etikete sahip olmalı ve bu etiketin değeri olmalıdırspot
. - Düğüm tercihen anahtarına
another-node-label-key
sahip bir etikete sahiptir ve bu etiketin değeri olmalıdıranother-node-label-value
.
Daha fazla bilgi için bkz . Düğümlere pod atama.
Spot düğüm havuzunu yükseltme
Spot düğüm havuzunu yükselttiğiniz zaman AKS dahili olarak bir kordon ve çıkarma bildirimi oluşturur, ancak bir boşaltma uygulanmaz. Spot düğüm havuzu yükseltmeleri için kullanılabilir bir dalgalanma düğümü yok. Bu değişikliklerin dışında Spot düğüm havuzlarını yükseltme davranışı diğer düğüm havuzu türleriyle tutarlıdır.
Yükseltme hakkında daha fazla bilgi için bkz . AKS kümesini yükseltme.
Spot havuzu için en yüksek fiyat
Spot örnekleri için fiyatlandırma, bölgeye ve SKU'ya göre değişkendir. Daha fazla bilgi için bkz. Linux ve Windows için fiyatlandırma bilgileri.
Değişken fiyatlandırma ile en fazla beş ondalık basamak kullanarak ABD doları (USD) cinsinden maksimum fiyat ayarlama seçeneğiniz vardır. Örneğin, 0,98765 değeri saatte 0,98765 ABD doları maksimum fiyat olacaktır. En yüksek fiyatı -1 olarak ayarlarsanız örnek, fiyata göre çıkarılamaz. Kullanılabilir kapasite ve kota olduğu sürece, örneğin fiyatı Spot örneğinin veya standart bir örneğin geçerli fiyatının daha düşük fiyatı olacaktır.
Sonraki adımlar
Bu makalede AKS kümesine Spot düğüm havuzu eklemeyi öğrendiniz. Düğüm havuzları arasında podları denetleme hakkında daha fazla bilgi için bkz . AKS'de gelişmiş zamanlayıcı özellikleri için en iyi yöntemler.
Azure Kubernetes Service