阿里云容器服务简介

容器服务是阿里云在2015年12月推出的一项新产品,目前正处于公测阶段。

 

容器服务是一项高性能可扩展的容器管理服务,支持在一组阿里云云服务器上通过 Docker容器来部署或编排应用。用户不再需要安装、运维、扩展自己的集群管理基础设施,而是可以直接通过阿里云控制台图形化界面或API进行容器操作和生命周期管理。容器服务整合了阿里云负载均衡SLB、专有网络 VPC等云产品,为云应用部署与运维场景提供丰富的一站式功能支持。

 

和业内同类容器服务产品AWS EC2 Container Service, Google Container Engine相比,阿里云容器服务的一大优势是它兼容标准Docker API,支持基于单Docker镜像或Docker Compose模板在集群中进行自动化部署和管理容器应用,用户更可以将应用无缝迁移到阿里云上。


为什么需要容器编排服务

 

这两年来,随着Docker容器技术的发展,分布式应用的构建、发布和运行变得前所未有的简单,应用生命周期的环境一致性和标准化也得以保证。在容器化部署运维被人们逐渐接受的同时,如何快速、有效、灵活地部署和动态管理大量分布式容器应用已经成为一项广泛的需求,受到大家的关注。

 

首先,用户的业务需求是动态变化的,用户需要以快速、高效的方式实现其容器应用的横向扩展。其次,可用性通常是分布式应用的重要指标。单点失效是分布式系统的基本假设,当单个容器失效时需要有机制将容器重建甚至是迁移到其他计算资源上,从而保持整体服务不受影响。 在真实的应用场景中,用户要对容器集群的规模,生命周期和资源调度进行管理,业内有诸如Docker Swarm, KubernetesMesos等工具的解决方案,但仍然需要用户自己安装部署,升级维护这些工具。与它们所不同的是,阿里云容器服务以服务化的方式为用户提供了更简洁的使用体验,用户只需要维护自己的应用镜像和编排模板,即可实现在多区域,不同集群环境上的应用部署和管理,这个过程是非常简便和可重复的。

 

此外,容器服务还提供了一个非常重要的价值,它为希望使用容器部署自己的服务的用户提供了更高层次的抽象,用户无需关心底层实现细节,如:申请云计算资源、如何使容器运行在云主机之上等。


产品概念

 

容器服务中的基本概念包括:集群、节点、应用、服务、镜像、编排模板。

 

集群是计算资源的集合,它包含一个或多个节点(ECS实例)。容器运行在节点上。应用由一个或多个服务组成,它们运行在容器内,部署在集群中。

 

Docker镜像是容器应用打包的标准格式,在部署容器化应用时可以指定镜像,镜像可以来自于Docker Hub阿里云容器Hub,或者用户的私有Registry。

编排模板包含了一组容器服务的定义和其相互关联,可以用于多容器应用的部署和管理。容器服务支持Docker Compose模板规范并有所扩展。

846a5ed9d819b2cc34af5b97aad16fbba8817f55

系统架构

 

容器服务运行在你自己拥有的阿里云服务器上,你可以和平时使用一样通过SSH的方式登陆到云服务器上进行操作和管理。

 

容器服务在你的每台云服务器上会运行一个容器服务Agent,用于和服务端通信。


4a12af669cdd8284aecbe6bfe478139c8d935538


部署你的第一个容器

 

使用阿里云容器服务部署应用的步骤非常简单,所有操作都可以通过阿里云官网的控制台完成。


第一步 创建集群

 

首先,你需要创建一个自己的容器集群。下面的示例中选择了北京区域的两台普通配置云服务器, 网络类型是经典网络。最后,还需要设置云服务器的登录密码。


4ea793fd2cf1a020dcd17b2ea349a43072123982


这里要特别注意,容器服务目前创建集群时只支持开通按量付费的云服务器实例,现金账户余额不得少于100.00元,否则创建集群会失败。


4270af93d693b88c090a72c26ef0e3ff700bfc21


点击右下角的“创建集群”后,你的集群就创建好了,此时可以在集群列表中查看集群状态。


e89d5571f156083e7006564b6f9f7ab009c48450


第二步 创建应用

 

下面我们通过一个例子来看如何使用编排模板创建WordPress。

 

首先,在左侧导航的“应用”页,点击右上角的“创建应用”后,在页面中设置应用名称、描述、版本和部署的集群。选择“使用编排模板创建”,挑转到下面的页面。


0d58a96d88b57e2e018ef848de4b54006ba883dd

选择“使用已有编排模板”


54e6d03b2076c762d9dbdd06db255c564de943fb

点击“WordPress”模板旁的“选择”,在模板编辑框,修改相应的配置。

"aliyun.routing.port_80: http://wordpress" 代表该容器运行成功后,来自http://wordpress.$testDomain的请求会转发到容器的80端口

 

点击“创建并部署”。


a78a61a82fe726f7bf664ab8a89888d3f4d0018d

访问应用域名


在应用列表页面,找到刚才创建的wordpress-test应用,点击“wordpress-test”链接查看详情。

7dfefe4066d72d792f6f7c9283c6b6daf203adfc


在服务列表的tab下,点击"web"的链接查看该服务的详情


b2a525eb16d19cbb735b8b7f7eede302724464b5


找到对应的Endpoint地址,即为访问的域名地址。


阿里云容器服务的优势

 

完整的应用生命周期支持

支持容器化应用从镜像构建,分发、编排、运维的整个生命周期的关键问题;同时提供了和三方服务的接口,用户可以定制、集成自己的流程。

 

简化运维,云端优化

容器集群一键创建,整合了阿里云专有网络VPCSLB等服务。

针对微服务、Web应用等场景,在Docker Compose编排的基础上做了扩展扩展,提供服务的健康性检查,依赖关系设置、容器伸缩,路由访问等能力,方便与阿里云现有服务RDS, KVStore整合。

提供了预置的日志和监控能力,同时允许用户扩展集成自己的管控方案。

针对阿里云虚拟化、网络、存储的能力,提供了很多针对容器应用的增强。

 

拥抱生态

兼容标准Docker API,可以通过常用的Docker工具访问和管理Docker集群,例如Docker client,支持任意Docker镜像和Docker-compose编排模板

具体访问方式请见阿里云官方文档:通过Docker客户端连接集群。

 

安全可靠

支持户私有镜像仓库,保护用户知识资产

每个容器集群是基于独立的ECS实例资源,不同用户之间不会共享计算资源,可以更好的保障用户应用的安全性和SLA

整合了阿里云专有网络VPC,提供安全、高性能、支持混合云的部署方案。


总结

 

本文对阿里云容器服务进行了简单介绍,并通过一个应用部署示例帮助大家了解如何通过阿里云容器服务来部署应用。

 

Docker生态日趋成熟,越来越多的用户使用Docker来部署、运行应用程序,阿里云容器服务为这些用户提供了简单、稳定、高性能、高度可扩展、Docker友好的云计算产品,极大地降低了用户使用容器作为服务的使用门槛,使得用户从纷繁芜杂的资源申请、调度以及容器部署、运行等细节中抽离出来,更加专注于自己的业务逻辑。