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ırkenSpotMaxPrice, 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 prioritydeğ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 bir priority 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 Deleteolarak ayarladığınızda, düğüm havuzunun temel ölçek kümesindeki düğümler çıkarıldığında silinir.

Çıkarma ilkesini Deallocateolarak 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:NoScheduletaint 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 öğesinin scaleSetPriority olduğunu Spotonaylayı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/scalesetprioritysahip bir etikete sahip olmalı ve bu etiketin değeri olmalıdırspot.
  • Düğüm tercihen anahtarına another-node-label-keysahip 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.