阿里云容器服务提供了面向企业客户的技术能力,为企业应用容器化提供了迁移工具和咨询服务、深度学习、区块链等应用解决方案,以帮助企业优化现有IT投资和加速业务创新。
10月12日云栖大会上,阿里云专有云新版本(飞天专有云敏捷版2.0)宣告了对Kubernetes的支持;日前,公共云容器服务也宣布了开放支持Kubernetes 1.8.1 版本的托管服务,并且成为全球首批通过Kubernetes一致性认证的厂商之一。作为容器编排系统的两大流派, Kubernetes和Swarm的重要性不言而喻。融合了两大高性能集成的阿里云容器服务,不仅可以降低50%的基础架构成本,提高交付速度将产品迭代加快13倍,还可以实现秒级的海量容器启动、秒级的应用架构伸缩与恢复、分钟级部署。
项目背景
在企业级大规模容器化的情况下,如何在分布式环境中部署应用、如何管理跨机器应用,如何维护并实现负载均衡、资源配额、自动调度、在线扩容等等:这就是容器编排系统的作用。容器编排系统的英文单词是container orchestration,其中orchestration直译为“管弦乐编曲”,编曲时要考虑到如何让不同的乐器交织、如何通过先后不同乐章中让乐曲更加美妙动听。
企业在管理容器集群时更是需要容器编排系统,目前比较主流的两大方案是源自谷歌的Kubernetes和Docker公司自研的Docker Swarm。其中Kubernetes是集群管理软件,用于容器化应用程序的自动部署、扩展和管理,它支持包括Docker等在内的一系列容器工具。
作为Docker公司国内唯一的合作伙伴,以及CNCF金牌会员,阿里云在容器服务上一直专注于为企业提供容器服务。2015年底首次开启阿里云容器服务公测;2016年5月正式商业化;2016年10月成为Docker国内唯一合作伙伴并推出专有云企业版,12月实现产品国际化。最初的容器服务支持的是Docker Swarm编排系统,2017年5月增加了对Kubernetes编排系统的支持。
技术解读
本次产品升级最大的亮点便是将容器技术和云能力高度集成到了一起,提供了稳定的容器云核心能力。阿里云提供的Cloud Provider Controller更是实现了原生Kubernetes和阿里云能力的无缝整合,可以轻松使用包括云主机、负载均衡、分布式存储、异构计算等阿里云强大的资源,并针对阿里云IaaS能力对Kubernetes进行了多重优化,为用户提供了一个安全、稳定、易用的Kubernetes托管服务。
阿里云将体现出6大独特优势:
- 简单的负载均衡:可以方便地利用SLB作为应用的负载均衡入口;
- 高效容器网络接口:Kubernetes依赖网络插件来实现容器之间的互联互通。容器服务团队为开源网络方案flannel贡献了兼容CNI的阿里云VPC网络模型,其网络模型简单、高效,而且可以支持容器和宿主机在一个网络平面互相访问,非常适合混合云部署;
- 持久化文件卷支持:当虚拟机节点发生故障时,Kubernetes会将容器迁移到其他主机上。使用本地存储的容器无法实现数据的迁移。阿里云容器服务为Kubernetes增加了阿里云云盘和NAS等分布式存储服务支持。这样当容器迁移到其他节点时,集群节点会为容器自动解绑和绑定相应的存储,保证应用可以被正常迁移、恢复;
- GPU、异构计算与深度学习:在创建Kubernetes集群时,不但可以选择CPU工作节点,还可以选择支持GPU的工作节点。也在集群中开启了GPU资源调度,实现异构计算集群支持深度学习等场景;
- 稳定的版本与官方的认证:同时为了优化容器运行时的稳定性和对新特性的支持,容器服务将Docker更新到稳定的社区版 17.06.2。阿里云容器服务已经通过了CNCF的Kubernetes一致性测试,能够给客户一个兼容、稳定的容器运行平台;
- 一键部署、DevOps集成:Kubernetes的部署和运维对入门客户都是很有挑战的。阿里云容器服务为此进一步提升了易用性,降低了部署、管理和应用开发门槛。容器服务支持在阿里云一键上部署Kubernetes集群,并且实现了与Kubernetes控制台的集成,用户可以通过阿里云账户管理集群。更为方便的是在阿里云CodePipeline中内置了对Kubernetes解决方案的集成,可以大大简化用户从代码提交到上线的流程。
此外,阿里云容器服务提供的产品之一——容器镜像服务目前也已经进入公测阶段。镜像服务经过阿里集团双十一的验证,已经支撑超过10万镜像仓库和2亿次的镜像下载量。阿里云容器镜像服务提供了安全的镜像托管能力,全球部署超过12个地域,可以提供稳定的镜像构建服务、便捷的团队组织协作功能等,方便用户进行镜像的全生命周期管理。
场景应用
下面是阿里云容器服务的产品架构图,最上层提到的三个DevOps、微服务和企业应用三种应用场景,更细致一些还有机器学习、弹性伸缩和混合云场景(点击此处可查看五种实战场景下的架构示意图)。
早期的Kubernetes并不是很成熟,存在安全能力较弱、部署复杂等不足,而2016年Kubernetes发展迅猛,目前已经非常完备。所以,阿里云容器团队选择了在合适的时间推出Kubernetes服务,在此前的Docker Swarm基础上再添加对Kubernetes的支持。如此,用户便可以根据需要选择不同的技术方案。
条条大路通罗马,殊途同归。两者都是很好的编排系统,重点在于如何借助容器技术助力企业创新。不论是Swarm 还是Kubernetes 亦或是自有方案,用户都可以根据自己情况,选择编排方案,在技术选型上有着更大的自由。
据悉,目前阿里云容器服务已经帮助众多国内外客户在阿里云公有云和专有云中实现应用迁云、DevOps、微服务架构、AI业务创新、混合云、弹性伸缩等众多场景,已经为电商/O2O、金融、游戏、大数据、教育、媒体、工业制造、云计算、医疗健康行业等企业提供了服务,如居然之家、上海证券交易所、中信集团、ofo共享单车、华大基因等。
实操接入
为降低开发应用门槛,阿里云对Kubernetes能力进行了多重补充,比如通过选择不同节点实现异构计算集群支持深度学习等场景,或者云上一键部署集群集成解决方案。
一些文章方便大家快速开启使用容器服务:
- 《在阿里云容器服务上创建一个使用Redis的Python应用》
- 《利用Docker和阿里云容器服务轻松搭建TensorFlow Serving集群》
- 《当Docker遇到数据库:在阿里云容器服务中使用RDS》
- 《基于Docker的应用负载均衡与服务发现》
- 《利用阿里云容器服务实现自定义节点伸缩》
更多容器镜像服务的操作步骤详见 《四个问题读懂阿里云的镜像仓库,如何为镜像进行全生命周期管理?》一文中的——镜像仓库的配合使用范例是怎样的?
截至目前,阿里云成为了中国唯一支持Kubernetes和Swarm两大流行容器调度系统的中国云计算公司。阿里云容器服务的公有云版本是免费的,但专有云版本的使用是付费的,容器服务费用包括两部分费用:所使用资源(云服务器、负载均衡等)的费用和容器集群的管理费用。通过容器服务自动创建或者手工加入的云服务器实例或负载均衡实例,仍按照相关云服务器、负载均衡价格计费。具体计费信息,参见云服务器计费和负载均衡计费。