Microsoft Azure Container Service Engine - Builds Docker Enabled Clusters
The Azure Container Service Engine (
acs-engine) generates ARM (Azure Resource Manager) templates for Docker enabled clusters on Microsoft Azure with your choice of DC/OS, Kubernetes, OpenShift, Swarm Mode, or Swarm orchestrators. The input to the tool is a cluster definition. The cluster definition (or apimodel) is very similar to (in many cases the same as) the ARM template syntax used to deploy a Microsoft Azure Container Service cluster.
The cluster definition file enables you to customize your Docker enabled cluster in many ways including:
- Choice of DC/OS, Kubernetes, OpenShift, Swarm Mode, or Swarm orchestrators
- Multiple agent pools where each agent pool can specify:
- Standard or premium VM Sizes, including GPU optimized VM sizes
- Node count
- Virtual Machine ScaleSets or Availability Sets
- Storage Account Disks or Managed Disks
- OS and distro
- Custom VNET
More info, including a thorough walkthrough is here.
These guides show how to create your first deployment for each orchestrator:
- DC/OS Walkthrough - shows how to create a DC/OS cluster on Azure
- Kubernetes Walkthrough - shows how to create a Linux or Windows Kubernetes cluster on Azure
- OpenShift Walkthrough - shows how to create an OpenShift cluster on Azure
- Swarm Mode Walkthrough - shows how to create a Docker Swarm Mode cluster on Azure
- Standalone Swarm Walkthrough - shows how to create a Docker Standalone Swarm cluster on Azure
These guides cover more advanced features to try out after you have built your first cluster:
- Cluster Definition - describes the components of the cluster definition file
- Custom VNET - shows how to use a custom VNET
- Attached Disks - shows how to attach up to 4 disks per node
- Managed Disks - shows how to use managed disks
- Large Clusters - shows how to create cluster sizes of up to 1200 nodes
Follow the developers guide to set up your environment.
To build acs-engine, run
make build. If you are developing with a working Docker environment, you can also run
make dev (or
makedev.ps1 on Windows) first to start a Docker container and run
make build inside the container.
Please follow these instructions before submitting a PR:
make testto run unit tests.
- Manually test deployments if you are making modifications to the templates.
- For example, if you have to change the expected resulting templates then you should deploy the relevant example cluster definitions to ensure that you are not introducing any regressions.
- Make sure that your changes are properly documented and include relevant unit tests.
Usage is best demonstrated with an example:
$ vim examples/kubernetes.json # insert your preferred, unique DNS prefix # insert your SSH public key $ ./acs-engine generate examples/kubernetes.json
This produces a new directory inside
_output/ that contains an ARM template for deploying Kubernetes into Azure. (In the case of Kubernetes, some additional needed assets are generated and placed in the output directory.)