WE HAVE MOVED: Please join us at Azure/aks-engine!
Перейти к файлу
Anubhuti Manohar 86c0d880fc Enable Swarm Mode cluster creation (#205)
* Add Linux Swarm Mode to ACS Engine

Add Linux Swarm Mode to ACS Engine

* Enable Linux Swarm Mode in ACS Engine

Enable Linux Swarm Mode in ACS Engine

* Update log output

* Update templates.go

* Regenerate acs engine.go after merge from master

* Fixing classicMode template generation and regular expression bugs

* More fixes

* Update expected test files

* Update input JSON

* Add scenario templates for testing.

* Adding more tests

* Adding more test cases for Swarm Mode

* Backcompat fixes

* Fix parameters generation

* Update ReadMe

* Enable classicMode tests

* Fix misc issues

* Update documentation

* Adding example templates

* Fix parameter generation

* Update documentation

* Add support to SSH on port 22 on master 0.

* Update documentation for SSH on port 22

* Update documentation

* Add Swarm Mode large cluster examples and tests
2017-01-24 18:44:50 -08:00
docs Enable Swarm Mode cluster creation (#205) 2017-01-24 18:44:50 -08:00
examples Enable Swarm Mode cluster creation (#205) 2017-01-24 18:44:50 -08:00
parts Enable Swarm Mode cluster creation (#205) 2017-01-24 18:44:50 -08:00
pkg Enable Swarm Mode cluster creation (#205) 2017-01-24 18:44:50 -08:00
scripts Add devenv for building/testing/validating under Docker 2016-10-27 12:10:36 -07:00
test Enable Swarm Mode cluster creation (#205) 2017-01-24 18:44:50 -08:00
.dockerignore Add devenv for building/testing/validating under Docker 2016-10-27 12:10:36 -07:00
.gitattributes Add devenv for building/testing/validating under Docker 2016-10-27 12:10:36 -07:00
.gitignore Add devenv for building/testing/validating under Docker 2016-10-27 12:10:36 -07:00
Dockerfile Add devenv for building/testing/validating under Docker 2016-10-27 12:10:36 -07:00
LICENSE Add License 2016-10-06 07:18:42 -07:00
Makefile makefile: fix generate/get order (#173) 2017-01-10 16:31:04 -08:00
README.md Fix CoC links (#204) 2017-01-23 14:50:27 -08:00
acs-engine.go Enable Swarm Mode cluster creation (#205) 2017-01-24 18:44:50 -08:00

README.md

Microsoft Azure Container Service Engine - Builds Docker Enabled Clusters

Overview

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, or Swarm orchestrators. The input to the tool is a cluster definition. The cluster definition 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 the following customizations to your Docker enabled cluster:

  • choice of DC/OS, Kubernetes, or Swarm orchestrators
  • multiple agent pools where each agent pool can specify:
  • standard or premium VM Sizes,
  • node count,
  • Virtual Machine ScaleSets or Availability Sets,
  • Storage Account Disks or Managed Disks (under private preview),
  • Docker cluster sizes of 1200
  • Custom VNET

User guides

  • ACS Engine - shows you how to build and use the ACS engine to generate custom Docker enabled container clusters
  • Cluster Definition - describes the components of the cluster definition file
  • DC/OS Walkthrough - shows how to create a DC/OS enabled Docker cluster on Azure
  • Kubernetes Walkthrough - shows how to create a Kubernetes enabled Docker cluster on Azure
  • Swarm Walkthrough - shows how to create a Swarm enabled Docker cluster on Azure
  • Custom VNET - shows how to use a custom VNET
  • Attached Disks - shows how to attach up to 4 disks per node
  • Managed Disks (under private preview) - shows how to use managed disks
  • Large Clusters - shows how to create cluster sizes of up to 1200 nodes

Contributing

Please follow these instructions before submitting a PR:

  1. Execute make ci to run the checkin validation tests.

  2. 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 you're not introducing any sort of regression.

Usage (Template Generation)

Usage is best demonstrated with an example:

$ vim examples/kubernetes.classic.json

# insert your preferred, unique DNS prefix
# insert your SSH public key

$ ./acs-engine examples/kubernetes.classic.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.)

Deployment Usage

Generated templates can be deployed using the Azure XPlat CLI (v0.10**.0** only), the Azure CLI 2.0 or Powershell.

Deploying with Azure XPlat CLI

NOTE: Some deployments will fail if certain versions of the Azure XPlat CLI are used. It's recommended that you use Azure XPlat CLI 0.10**.0** until a new point release of 0.10.x is available with the fix.

$ azure login

$ azure account set "<SUBSCRIPTION NAME OR ID>"

$ azure config mode arm

$ azure group create \
    --name="<RESOURCE_GROUP_NAME>" \
    --location="<LOCATION>"

$ azure group deployment create \
    --name="<DEPLOYMENT NAME>" \
    --resource-group="<RESOURCE_GROUP_NAME>" \
    --template-file="./_output/<INSTANCE>/azuredeploy.json" \
    --parameters-file="./_output/<INSTANCE>/azuredeploy.parameters.json"

Deploying with Azure CLI 2.0

NOTE: Azure CLI 2.0 is still in preview, so changes may occur. Please reference the Azure CLI 2.0 GitHub Repo for updated commands and please ensure that your installation is up to date with the latest release. (Releases occur weekly!)

$ az login

$ az account set --subscription "<SUBSCRIPTION NAME OR ID>"

$ az group create \
    --name "<RESOURCE_GROUP_NAME>" \
    --location "<LOCATION>"

$ az group deployment create \
    --name "<DEPLOYMENT NAME>" \
    --resource-group "<RESOURCE_GROUP_NAME>" \
    --template-file "./_output/<INSTANCE>/azuredeploy.json" \
    --parameters "@./_output/<INSTANCE>/azuredeploy.parameters.json"

Deploying with Powershell

Add-AzureRmAccount

Select-AzureRmSubscription -SubscriptionID <SUBSCRIPTION_ID>

New-AzureRmResourceGroup `
    -Name <RESOURCE_GROUP_NAME> `
    -Location <LOCATION>

New-AzureRmResourceGroupDeployment `
    -Name <DEPLOYMENT_NAME> `
    -ResourceGroupName <RESOURCE_GROUP_NAME> `
    -TemplateFile _output\<INSTANCE>\azuredeploy.json `
    -TemplateParameterFile _output\<INSTANCE>\azuredeploy.parameters.json

Code of conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.