One of the ways you can save some money using Azure is by using spot node pools for your Azure Kubernetes Service cluster.
What’s a spot node pool?
Using a spot node pool allows you to take advantage of unused Azure capacity at a significant cost savings. At any point in time when Azure needs the capacity back, the Azure infrastructure will evict spot nodes. Therefore, Spot nodes are great for workloads that can handle interruptions like batch processing jobs, dev/test environments, large compute workloads, and more.
Remark: A spot node pool can't be the cluster's default node pool. A spot node pool can only be used for a secondary pool.
Pricing for a spot node pool
Pricing for spot instances is variable, based on region and SKU. For more information, see pricing for Linux and Windows. You do have the option to set a max price. In case the price is exceeded the spot node is evicted from your cluster.
Schedule a deployment to use the spot node pool
A spot node pool has the label kubernetes.azure.com/scalesetpriority:spot and the taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule. We use this information to add a toleration in our deployment.yaml:
In case you have multiple spot node pools, you can use a nodeselector to select a specific pool: