Templates for Azure Virtual Machine Scale Sets.
VM Scale Sets allow you to deploy and manage a group of identical virtual machines as a set. Advantages include:
- Autoscale - simply change the instance count and Scale Sets will increase or decrease the number of VMs evenly across update and fault domains.
- Performance - deploying hundreds of VMs results in a single call to the fabric, allowing inherent performance optimizations.
- Customization - built on Azure IaaS, Scale Sets support all Windows and Linux VMs including custom images and extensions.
- Ease of management - building on the simple declarative modelling introduced with Azure Resource Manager, Scale Sets are the simplest way to manage sets of identical VMs. Focus on compute at scale without managing scaling of storage accounts and NICs.
Note: VM Scale Sets are not yet in preview:
- These templates won't work until we start whitelisting Azure subscriptions. We've blocked all access while the dev team are busy making breaking changes to support updates and additions to the API. The example templates below are to provide an early view of the work.
Preview update (8/31/15): Current plan is to start a private preview in October 2015, working with Azure Advisors. If you wish to participate in this preview, you can self-nominate here.
This is preview, with the following major limitations:
- Single storage accounts for custom images.
- No image based patching support.
- Breaking changes are possible.
- etc..
Note: Imperative commands to manage scale sets using CLI and PowerShell are being worked on. The following commands manage templates where the VM Scale Sets are modelled.
Download Aure PowerShell 0.9.0 or later.
Examples:
Switch-AzureMode -Name AzureResourceManager
new-azureresourcegroup -name myrg -location 'West US'
new-azureresourcegroupdeployment -name dep1 -vmSSName myvmss -instanceCount 2 -ResourceGroupName myrg -TemplateUri https://raw.githubusercontent.com/gbowerman/azure-myriad/master/vmss-ubuntu-vnet-storage.json
Or refer to a file..
new-azureresourcegroupdeployment -name dep1 -vmSSName myvmss -instanceCount 2 -ResourceGroupName myrg -TemplateFile C:\ARM_Templates\VMSS\vmss-win-vnet-storage.json
Or
Get-AzureResource -name myvmss -ResourceGroupName myrg -ResourceType Microsoft.Compute/virtualMachineScaleSets -ApiVersion 2015-05-01-preview
new-azureresourcegroupdeployment -name dep1 -vmSSName myvmss -instanceCount 2 -ResourceGroupName myrg -TemplateUri https://raw.githubusercontent.com/gbowerman/azure-myriad/master/vmss-scale-in-or-out.json
new-azureresourcegroupdeployment -name dep1 -vmSSName myvmss -instanceCount 2 -ResourceGroupName myrg -TemplateUri https://raw.githubusercontent.com/gbowerman/azure-myriad/master/vmss-scale-in-or-out.json
Remove-AzureResource -Name myvmss -ResourceGroupName myrg -ApiVersion 2015-05-01-preview -ResourceType Microsoft.Compute/virtualMachineScaleSets
Or
Remove the Resource Group:
Remove-AzureResourceGroup -Name myrg
Creates a VNET, storage account, and scale set of identical Ubuntu virtual machines. InstanceCount parameter describes the number of VMs.
Creates a VNET, storage account, and scale set of identical Windows virtual machines. InstanceCount parameter describes the number of VMs.
Creates a VNET, storage account, and scale set of identical CoreOS virtual machines. InstanceCount parameter describes the number of VMs.
Create a simple mesos cluster with a single master, with a VM Scale Set of slaves.
Reduce or increase the number of VM instances in a Scale Set. Platform independent. InstanceCount parameter describes the number of VMs.
Creates a VNET, three storage accounts, and scale set of identical Ubuntu virtual machines. InstanceCount parameter describes the number of VMs.