If you are serious about constantly learning Azure Kubernetes 🤓, there is no way around having a development cluster at hand. However, costs can quickly add up when not closely monitoring the cluster and Virtual Machine Scale Sets. 💸
So let's better be safe than sorry and start and stop the development cluster one schedule to keep costs low. 💪🏻
This article will walk you through setting up an Azure Automation Account with a scheduled runbook to change the state of your Azure Kubernetes Cluster. 😎
Create an Azure Automation Account
To manage an Azure Automation Account, you must first install an extension on
Azure CLI, which is as easy as...
az extension add --n automation
Next, we need to create the Automation Account
az automation account create -n auto-azureblue -g rg-demo
After the account got created, we need to enable a System assigned managed identity on the account. This principal will later be given the required permissions to start and stop the cluster.
automationextension for the Azure CLI is in preview, and I guess that's why we cannot make the beforementioned change via CLI.
Now, we need to assign the
Contributor role to this managed identity. Make a note of the object id that got created for the automation account and issue the following commands
# Retrieve AKS id and make a note az aks show -n aks-azureblue -g rg-demo --query-id # Assign role az role assignment create \ --role "Contributor" \ --assignee-object-id "<object-id>" \ --scope "<aks-id>"
Import a runbook from the gallery
Luckily enough, the gallery provides a ready-to-use runbook we can use. So navigate to Browse gallery, and search for
Select 5.1 as the runtime version, and name the runbook appropriately.
Don't forget to publish the runbook
Create and link schedules
The only thing left is creating two schedules, one that starts the AKS cluster in the morning and another that shuts it down in the evenings.
These are my two recurring schedules... of course, your mileage might vary. Ensure you pass the correct parameters for starting or stopping the cluster.
And there you have it. Your AKS cluster will start every day at 7:00 and shutdown at midnight. Mission accomplished! 💵