ACI是什么?微软Azure容器实例解析

ACI是什么?微软Azure容器实例解析

容器即服务

作为一类新型云平台,Azure容器实例(简称ACI)是一项“容器即服务”方案,允许大家在无需承担日常开销且可运用脚本化命令集的前提下,快速创建并启动容器化应用程序。由于内置大量工具且可与Kubernetes等主流方案相结合,ACI带来一系列容器管理命令,将其与以秒为单位的计费模式加以对接,而且用户无需创建并部署(或支付)任何容器主机。

然而,其中的计费模式较为复杂,主要包含三大元素。首先,容器实例的创建为每条请求平均0.0025美元; 其二,在设置完成后,您需要以每秒每GB 0.0000125美元的价格支付内存容量成本以及每秒每核心0.0000125美元的价格支付计算核心成本。这意味着大家需要时刻关注自己的使用时长,特别是在利用ACI处理大规模应用程序的情况下。

利用ACI部署容器

设置首套ACI容器非常简单,因为ACI采用Azure命令行。目前的版本仅可运行Linux容器,不过Windows容器功能也即将开放。在使用Azure容器服务时,大家需要利用Azure Cloud Shell或者远程Azure命令行实例构建及管理容器,并首先为ACI容器创建资源组。

命令行容器命令易于使用,且可用于定义您希望在ACI中使用的各类容器。由于无需构建及启动底层主机虚拟机,因此部署容器速度很快。ACI能够直接将现有虚拟机分配给容器,并在数秒内完成启动及运行。也可根据需求定义容器的实际内核数量以及内存容量。

部分命令还可以JSON格式获取容器状态的详尽信息。在实践中,大家可编写脚本,在ACI上部署容器,立足数据中心操作系统加以驱动或者将其作为持续集成平台中的一部分。JSON状态数据可在公有与私有服务之间配置任何网络服务或者连接。

由于Azure CLI基于Bash,因此也可凭借脚本实现高度自动化。微软承诺发布Windows Shell的一套Cloud Shell版本,同时也关注PowerShell与ACI之间的协作效果。

部署完成后,您的容器即可利用公开或内部IP地址运行。公开地址可承载面向公众的服务,私有地址适用于专用应用或者支持公共接口的内部服务。微软提供说明文档以帮助用户将ACI作为Web服务主机,旨在为可扩展Web应用部署高密度Web服务器。当然,大家也可以借此完成对Node.js应用的部署。

配合Kubernetes以规模化方式使用ACI

除了测试与开发层面的快速部署方案之外,ACI也可以配合Kubernetes作为强大的生产工具。遗憾的是,目前将一组容器作为Kubernetes pod使用的功能仍处于测试阶段。ACI Coonector for Kubernetes为开源项目,托管于GitHub之上,允许Kubernetes在ACI之上部署容器。

匹配ACI Connector的实际方式类似于配合其它kubelet,包括利用命令行进行容器托管与管理。该连接器将ACI注册为一个拥有无限容量的节点,且注册后您只需要在ACI帐户中利用该节点名称启动pod,并利用同样的Kubernetes命令完成容器创建与销毁。事实上,大家无需在Azure中运行Kubernetes即可实现这种功能:您只需要为ACI Kubernetes API提供一个公开IP地址。这意味着ACI能够配合任何Kubernetes主节点以运行任何服务。

微软与Kubernetes社区间的合作值得关注,而且相信未来会有更多人在Azure当中将ACI与Kubernetes配合使用——而不仅仅局限于内部或者跨云环境。

在使用Kubernetes处理突发性应用与服务时,ACI采取的每秒计费机制将极具成本优势。开源ACI连接器也有助于未来Mesos与Docker Swarm连接器的开发。

Azure的容器发展前景

微软通过ACS与ACI承诺的容器技术将会很有发展前景。而且相较于成本更高且资源需求量更大的IaaS模式,容器很可能成为Azure未来的根本性平台。容器采取的PaaS运行模式属于一种逻辑步骤,大家可轻松利用Kubernetes或者其它方案完成容器管理。

相关推荐