4.4 KiB
微软Azure容器服务引擎 - 构建基于Docker的容器集群
概览
微软容器服务引擎(acs-engine
)用于将一个容器集群描述文件转化成一组ARM(Azure Resource Manager)模板,通过在Azure上部署这些模板,用户可以很方便地在Azure上建立一套基于Docker的容器服务集群。用户可以自由地选择集群编排引擎DC/OS, Kubernetes或者是Swarm/Swarm Mode。集群描述文件使用和ARM模板相同的语法,它们都可以用来部署Azure容器服务。
集群描述文件提供了一下几个功能:
- 可以自由选择DC/OS, Kubernetes, Swarm Mode和Swarm等多种编排引擎
- 可以自由定制集群节点的规格,包括:
- 虚机的规格
- 节点的数量
- 弹性虚拟机集,高可用服务集
- 存储设备,托管存储
- 可创建高达1200的容器集群节点数量
- 自定义VNET
演示链接
- ACS Engine - 演示如何使用ACS引擎来生成基于Docker的容器集群
- Cluster Definition - 详细介绍集群描述文件的格式
- DC/OS Walkthrough - 演示如何使用ACS引擎在Azure上创建DC/OS集群
- Kubernetes Walkthrough - 演示如何使用ACS引擎在Azure上创建Kubernetes集群
- Swarm Walkthrough - 演示如何使用ACS引擎在Azure上创建Swarm集群
- Swarm Mode Walkthrough - 演示如何使用ACS引擎在Azure上创建Swarm Mode集群
- Custom VNET - 演示如何在用户自定义VNET上创建容器集群
- Attached Disks - 演示如何在一个集群节点上创建4个磁盘
- Managed Disks - 演示如何管理托管磁盘
- Large Clusters - 演示如何创建1200个节点的容器集群
提交代码
请按照以下流程提交您的PR:
-
提交之前请运行
make ci
命令确保测试用例通过 -
如果您改动了部署模板的话,请务必手动部署您的改动到Azure来确保项目正常运行。
使用步骤
通过创建一个容器集群来演示ACS引擎的具体用法:
$ vim examples/kubernetes.classic.json
# 修改默认的DNS prefix
# 修改ssh public key
$ ./acs-engine generate 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.)
运行完毕后,项目的根目录下就会产生一个_output/
的文件夹,这个文件夹中包含了所有的ARM模板,通过部署这些模板就可以在Azure上创建对应的容器集群了。(对于kubernetes来说,_output文件夹中也会生成一些证书之类的文件来供ARM部署时的需要)
部署方法
可以使用如下几种方式来部署ARM模板: the Azure CLI 2.0, Powershell.
使用Azure CLI 2.0部署
NOTE: Azure CLI 2.0目前任处于测试阶段,中国地区尚且无法使用。如果部署到国际版的Azure的话可以使用以下流程:
$ 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"
使用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
项目说明
本项目遵循Microsoft Open Source Code of Conduct. 详细信息请参阅 Code of Conduct FAQ或者联系opencode@microsoft.com获取更多的技术支持。