Kubernetes cluster with VMSS Cluster Autoscaler

Last updated: 2/18/2020

This template deploys a vanilla kubernetes cluster initialized using kubeadm. It deploys a configured master node with a cluster autoscaler. A pre-configured Virtual Machine Scale Set (VMSS) is also deployed and automatically attached to the cluster. The cluster autoscaler can then automatically scale up/down the cluster depending on the workload of the cluster.

This Azure Resource Manager template was created by a member of the community and not by Microsoft. Each Resource Manager template is licensed to you under a license agreement by its owner, not Microsoft. Microsoft is not responsible for Resource Manager templates provided and licensed by community members and does not screen for security, compatibility, or performance. Community Resource Manager templates are not supported under any Microsoft support program or service, and are made available AS IS without warranty of any kind.

Parameters

Parameter Name Description
_artifactsLocation The base URI where artifacts required by this template are located. When the template is deployed using the accompanying scripts, a private location in the subscription will be used and this value will be automatically generated.
_artifactsLocationSasToken The sasToken required to access _artifactsLocation. When the template is deployed using the accompanying scripts, a sasToken will be automatically generated.
vmName The name of your VM master node.
vmssName The name of your VMSS cluster.
location Location for all resources.
adminUsername Username for the Virtual Machine.
adminKey SSH Key for the Virtual Machine.
defaultNodeCount The initial node size of your VMSS cluster.
minNodeCount The min node size of your VMSS cluster.
maxNodeCount The max node size of your VMSS cluster.
spClientId ServicePrincipal ClientID
spClientSecret ServicePrincipal Secret
dnsLabelPrefix Unique DNS Name for the Public IP used to access the Virtual Machine.
vmssDnsLabelPrefix Unique DNS Name for the Public IP used to access the VMSS.
vmSize The size of the VM
virtualNetworkName Name of the VNET
subnetName Name of the subnet in the virtual network
vmssSubnetName Name of the VMSS subnet in the virtual network

Use the template

PowerShell

New-AzResourceGroup -Name <resource-group-name> -Location <resource-group-location> #use this command when you need to create a new resource group for your deployment
New-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/kubernetes-on-ubuntu-vmss/azuredeploy.json
Install and configure Azure PowerShell

Command line

az group create --name <resource-group-name> --location <resource-group-location> #use this command when you need to create a new resource group for your deployment
az group deployment create --resource-group <my-resource-group> --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/kubernetes-on-ubuntu-vmss/azuredeploy.json
Install and Configure the Azure Cross-Platform Command-Line Interface