AKS | Azure Spot Instances

[English below]

Salut,

Dans cet article, nous allons voir ensemble comment créer un cluster AKS utilisant un pool de spot instances. L’intérêt est d’utiliser des instances de type spot afin de pouvoir bénéficier de puissance de calcul non utilisé par le fournisseur de cloud et ainsi obtenir un rabais important sur le prix de cette instance.

Azure ChannelsAzure Spot VMs Disponibilité
Enterprise AgreementYes
Pay As You GoYes
Cloud Service Provider (CSP)Contact your partner
BenefitsNot available
SponsoredNot available
Free TrialNot available

L’objectif de cet article est de vous présenter comment créer un pool d’instances de type spot pour vos workloads AKS qui sont non critiques. Au moment où j’écris cet article, cette fonctionnalité est encore en public preview et nous n’avons pas de SLA disponible pour les instances de type spot.

# - Create a Ressource Group
az group create --name aksspot --location eastus

# - Create an AKS cluster
az aks create --resource-group aksspot --name aksdemospot --node-vm-size Standard_A2_v2 --node-count 2 --generate-ssh-keys

# - Register Spotpoolpreview
az feature register --namespace "Microsoft.ContainerService" --name "spotpoolpreview"

az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/spotpoolpreview')].{Name:name,State:properties.state}"

# - Install the aks-preview extension
az extension add --name aks-preview
 
# - Update the extension to make sure you have the latest version installed
az extension update --name aks-preview

# - Add spot pool to an existing AKS Cluster
az aks nodepool add \
    --resource-group aksspot \
    --cluster-name aksdemospot \
    --name spotnodepool \
    --priority Spot \
    --eviction-policy Delete \
    --spot-max-price -1 \
    --enable-cluster-autoscaler \
    --node-vm-size Standard_D2_v3 \
    --min-count 1 \
    --max-count 3 \
    --no-wait

# - Show AKS NodePool
az aks nodepool show --resource-group aksspot --cluster-name aksdemospot --name spotnodepool

Dans cet exemple, vous avez pu constater que le paramètre « spot-max-price » est à « -1 ». Le prix maximal sera le prix actuel (au maximum, le prix des machines virtuelles standards). 

Vous pouvez tout à fait remplacer ce paramètre directement par le prix maximum que vous souhaitez payer. Par exemple pour 0.98765, vous vous engagez à payer au maximum un prix de 0.98765$USD par heure.

Si le prix de votre machine dépasse le prix définit, votre machine virtuelle sera supprimée « –eviction-policy Delete ». Dans le cas où vous ne souhaitez pas que celle-ci soit supprimée mais désallouée, vous pouvez remplacer « –eviction-policy Delete » par « eviction-policy Deallocate ».

Maxime.


Hello,

In this article, I am explaining how you can create an AKS cluster with a pool of spot instances. The principal advantage here is to use unallocated compute ressources with a low price.

Azure ChannelsAzure Spot VMs Availability
Enterprise AgreementYes
Pay As You GoYes
Cloud Service Provider (CSP)Contact your partner
BenefitsNot available
SponsoredNot available
Free TrialNot available

The goal of this article is to explain how to create a spot pool for your non critical workloads. This feature is available only in preview and we don’t have SLA support at the time I am writing this article.

# - Create a Ressource Group
az group create --name aksspot --location eastus

# - Create an AKS cluster
az aks create --resource-group aksspot --name aksdemospot --node-vm-size Standard_A2_v2 --node-count 2 --generate-ssh-keys

# - Register Spotpoolpreview
az feature register --namespace "Microsoft.ContainerService" --name "spotpoolpreview"

az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/spotpoolpreview')].{Name:name,State:properties.state}"

# - Install the aks-preview extension
az extension add --name aks-preview

# - Update the extension to make sure you have the latest version installed
az extension update --name aks-preview

# - Add spot pool to an existing AKS Cluster
az aks nodepool add \
--resource-group aksspot \
--cluster-name aksdemospot \
--name spotnodepool \
--priority Spot \
--eviction-policy Delete \
--spot-max-price -1 \
--enable-cluster-autoscaler \
--node-vm-size Standard_D2_v3 \
--min-count 1 \
--max-count 3 \
--no-wait

# - Show AKS NodePool
az aks nodepool show --resource-group aksspot --cluster-name aksdemospot --name spotnodepool

In this example, the parameter « spot-max-price » is set to: « -1 ». The maximum price of this virtual machine will match the current price on the market.

If you want, you can replace this parameter by the maximum price you want to paid. For example, if you indicate 0.98765, in this case your maximum price will be 0.98765$USD per hour.

In the case of different prices, i.e. the maximum price is higher than the define one, your virtual machine will be deleted « –eviction-policy Delete ». If you don’t want to delete the virtual machine but only desallocate it, you can replace « –eviction-policy Delete » by « eviction-policy Deallocate ».

Maxime.

Démarrez une conversation

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *