Share via


Azure CLI kullanarak Azure Spot Sanal Makineler dağıtma

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri

Azure Spot Sanal Makineler kullanmak, kullanılmayan kapasitemizden önemli bir maliyet tasarrufuyla yararlanmanızı sağlar. Azure'ın kapasiteyi geri istediği herhangi bir noktada, Azure altyapısı Azure Spot Sanal Makineler çıkartır. Bu nedenle Azure Spot Sanal Makineler toplu işleme işleri, geliştirme/test ortamları, büyük işlem iş yükleri ve daha fazlası gibi kesintileri işleyebilen iş yükleri için idealdir.

Azure Spot Sanal Makineler fiyatlandırması, bölgeye ve SKU'ya göre değişkendir. Daha fazla bilgi için bkz. Linux ve Windows için VM fiyatlandırması.

VM için saat başına ödemek istediğiniz maksimum fiyatı ayarlama seçeneğiniz vardır. Azure Spot Sanal Makinesi için maksimum fiyat, en fazla 5 ondalık basamak kullanılarak ABD doları (USD) cinsinden ayarlanabilir. Örneğin, değer 0.98765 saatte 0,98765 ABD doları olan maksimum fiyattır. En yüksek fiyatı olarak -1ayarlarsanız, VM fiyata göre çıkarılır. Vm'nin fiyatı, Azure Spot Sanal Makinesi'nin geçerli fiyatı veya kapasite ve kota olduğu sürece daha düşük olan standart bir VM'nin fiyatıdır. En yüksek fiyatı ayarlama hakkında daha fazla bilgi için bkz. Azure Spot Sanal Makineler - Fiyatlandırma.

Azure CLI kullanarak Azure Spot Sanal Makinesi oluşturma işlemi , hızlı başlangıç makalesinde ayrıntılarıyla aynıdır. '--priority Spot' parametresini ekleyin, parametresini --eviction-policyDeallocate (varsayılan) veya Deleteolarak ayarlayın ve maksimum fiyat veya -1sağlayın.

Azure CLI'yı yükleme

Azure Spot Sanal Makineler oluşturmak için Azure CLI 2.0.74 veya sonraki bir sürümünü çalıştırıyor olmanız gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Yükleme veya yükseltme yapmanız gerekirse bkz. Azure CLI’yı yükleme.

az login kullanarak Azure'da oturum açın.

az login

Azure Spot Sanal Makinesi oluşturma

Bu örnekte, fiyat temelinde çıkarılmayan bir Linux Azure Spot Sanal Makinesinin nasıl dağıtılacağı gösterilmektedir. Çıkarma ilkesi VM'yi serbest bırakmak üzere ayarlanmıştır, böylece daha sonra yeniden başlatılabilir. VM çıkarıldığında VM'yi ve temel alınan diski silmek istiyorsanız olarak ayarlayın --eviction-policyDelete.

az group create -n mySpotGroup -l eastus
az vm create \
    --resource-group mySpotGroup \
    --name myVM \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --priority Spot \
    --max-price -1 \
	--eviction-policy Deallocate

VM oluşturulduktan sonra, kaynak grubundaki tüm VM'ler için en yüksek faturalama fiyatını görmek için sorgulayabilirsiniz.

az vm list \
   -g mySpotGroup \
   --query '[].{Name:name, MaxPrice:billingProfile.maxPrice}' \
   --output table

Çıkarmanın simülasyonunu yapma

Uygulamanızın ani çıkarma işlemlerine ne kadar iyi yanıt verdiğini test etmek için REST, PowerShell veya CLI kullanarak Azure Spot Sanal Makinesi çıkarma işleminin benzetimini yapabilirsiniz.

Çoğu durumda, uygulamaların otomatik olarak test edilmesine yardımcı olmak için REST API Sanal Makineler - Simulate Eviction kullanmak istersiniz. REST için simülasyon Response Code: 204 çıkarma işleminin başarılı olduğu anlamına gelir. Sanal makine çıkarıldığında uygulamanızın nasıl yanıt vereceğini otomatikleştirmek için sanal çıkarmaları Zamanlanmış Olay hizmetiyle birleştirebilirsiniz.

Zamanlanmış olayları uygulamada görmek için Azure Friday - VM bakımına hazırlanmak için Azure Zamanlanmış Olayları kullanma watch.

Hızlı test

Simülasyon çıkarma işleminin nasıl çalıştığını gösteren hızlı bir test için, Azure CLI kullanarak çıkarma işleminin benzetimini yaparken nasıl göründüğünü görmek için zamanlanmış olay hizmetini sorgulamayı gözden geçirelim.

Zamanlanmış Olay hizmeti, olaylar için ilk istekte bulunurken hizmetiniz için etkinleştirilir.

VM'nize uzaktan bağlanıp bir komut istemi açın.

VM'nizdeki komut isteminden şunu yazın:

curl -H Metadata:true http://169.254.169.254/metadata/scheduledevents?api-version=2019-08-01

Bu ilk yanıt 2 dakika kadar sürebilir. Bundan sonra çıkışı hemen görüntülemeleri gerekir.

Azure CLI'nın yüklü olduğu bir bilgisayardan (yerel makineniz gibi), az vm simulate-eviction komutunu kullanarak çıkarma simülasyonu oluşturun. Kaynak grubu adını ve VM adını kendi adınızla değiştirin.

az vm simulate-eviction --resource-group mySpotRG --name mySpot

İstek başarıyla yapıldıysa yanıt çıkışında bulunur Status: Succeeded .

Spot Sanal Makinenize uzak bağlantınıza hızla geri dönün ve Zamanlanmış Olaylar uç noktasını yeniden sorgulayın. Daha fazla bilgi içeren bir çıkış elde edene kadar aşağıdaki komutu yineleyin:

curl -H Metadata:true http://169.254.169.254/metadata/scheduledevents?api-version=2019-08-01

Zamanlanan Olay Hizmeti çıkarma bildirimini aldığında, aşağıdaki çıkışa benzer bir yanıt alırsınız:

{"DocumentIncarnation":1,"Events":[{"EventId":"A123BC45-1234-5678-AB90-ABCDEF123456","EventStatus":"Scheduled","EventType":"Preempt","ResourceType":"VirtualMachine","Resources":["myspotvm"],"NotBefore":"Tue, 16 Mar 2021 00:58:46 GMT","Description":"","EventSource":"Platform"}]}

ve kaynağının "EventType":"Preempt"vm kaynağı "Resources":["myspotvm"]olduğunu görebilirsiniz.

Vm'nin çıkarma durumunu "NotBefore" , verilen süreden önce çıkarılmayacağı için uygulamanızın düzgün bir şekilde kapanması için kullanabileceğiniz bir pencere olarak da görebilirsiniz.

Sonraki adımlar

Ayrıca Azure PowerShell, portal veya şablon kullanarak bir Azure Spot Sanal Makinesi de oluşturabilirsiniz.

Azure Spot Sanal Makinesi hakkında bilgi için Azure perakende fiyatları API'sini kullanarak geçerli fiyatlandırma bilgilerini sorgula. meterName ve skuName her ikisi de içerirSpot.

Hatayla karşılaşırsanız bkz. Hata kodları.