科技

从深圳市城市公共服务云建设谈Kubernetes(一)

字号+作者:肖琳琳 来源:第一科技网 2018-03-22 14:46:09 我要评论() 收藏成功收藏本文

上一期《基于Docker技术的超级计算云平台》说到,容器技术是深圳市城市公共服务云(公有云)应用的基本技术之一,众多网友意犹未尽,后台纷纷留言表示希望能够'...

 上一期《基于Docker技术的超级计算云平台》说到,容器技术是深圳市城市公共服务云(公有云)应用的基本技术之一,众多网友意犹未尽,后台纷纷留言表示希望能够继续讨论容器技术。于是,为满足大家的愿望,本期我们来讨论容器的编排技术。

网友一:为保证业务的高可用,一个容器通常拥有多个副本,并且这些副本可能不在同一个宿主机上,那么如何对将这些容器副本对外提供统一的服务?

网友二:容器的多个副本可能不在同一个宿主机上,一个容器应用可能需要其他容器应用提供的服务,那么如何将这些容器的网络打通以使得这些容器可以协作?

网友三:容器是临时性的存在,生命周期通常很短,那么如何将容器的数据进行持久化?

网友四:如何能够快速的建立一个业务应用?

……

深圳超算:不用慌,容器编排技术就能够解决这一系列的问题。

市面上有很多容器编排产品,最为主流的是Kubernetes。本文以下部分为大家介绍Kubernetes这个明星产品。

Kubernetes作为容器化应用的自动化部署、扩容、缩容、管理的开源系统,是一个全新的基于容器技术的分布式架构领先方案,并且是谷歌十几年以来大规模应用容器技术的经验积累和升华的一个重要成果。既然能成为容器编排产品中的主流明星,那么Kubernetes必定有其魅力不可挡之处。

Kubernetes解决方案使得为开发者节省了不少于30%的开发成本并将开发者的精力更集中于业务。

Kubernetes强大的自动化机制大大降低系统后期的运维难度和运维成本。

Kubernetes是一个开放的平台,支持多种语言缩写的服务。

Kubenetes是一个完备的分布式系统支撑平台,具有多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度、多粒度的资源配额管理能力等完备的集群管理能力,它提供了涵盖开发、部署测试、运维监控在内的各环节的管理工具。

那么,Kubernetes除了以上的特性外,它跟其他容器编排产品相比还有哪些优势,使得它称霸市场呢?

我们首先看下,当前市场上除了Kubernetes,其他主流的容器编排产品还包括Dockers官方的Docker Swarm、Twitter的Mesos和CloudFoundary体系的容器编排组件。但是Apache Mesos只是一个分布式内核,目前的发展方向是数据中心操作系统(DCOS),它同时支持 Marathon、Kubernetes 和 Swarm 等多种框架,连Mesosphere 也是 Kubernetes 生态的一员,从编排的角度,讨论 Mesos 意义不大;CloudFoundary的技术路线与其他的技术路线完全不同,虽然它也在做修改以支持Docker,但是似乎没有什么很多的影响,本文主要讨论的是Docker容器这一体系,所以也不讨论CloudFoundary。

我们以下从设计初衷、产品理念完善史、社区主力、核心功能、服务发现机制、模型抽象来对比Docker Swarm和Kubernetes的特点。

设计初衷:Docker Swarm的设计初衷是跨宿主机集群的容器管理;Kubernetes的设计初衷是支持分布式、服务化的应用架构。

产品理念完善史:Docker Swarm产品至今只有3年,而Kubernetes在谷歌内部使用了长达十几年,至今也有16年。

社区主力:Docker Swarm的社区主力只有Docker,Kubernetes社区则有谷歌、红帽、华为、CoreOS、浙大SEL等。

核心功能:Docker Swarm的核心功能为节点管理、任务调度、服务发现、滚动升级、容器高可用、通讯安全;Kubernetes的核心功能则包括了资源调度、服务发现、服务编排、资源逻辑隔离、服务故障发现和服务自愈、安全配置管理、Job任务支持、自动回滚、内部域名服务、健康检查、有状态支持、运行监控/日志、扩缩容、负载均衡、灰度升级、容灾恢复、应用高可用等广泛得多的内容,且这些功能都极大的方便了服务和应用的Devops。

服务发现机制:Docker Swarm通过Consul实现服务发现;Kubernetes则有内置的服务发现机制。

模型抽象:Docker Swarm没有模型抽象;Kubernetes通过Pod、Service、ReplicationSet、Deployment、StatefulSet、Node、PersistentVolume、PersistentVolumeClaim等一系列对象来方便应用快速部署。

可视化管理:Docker Swarm没有可视化工具来管理;Kubernetes可通过Kubernetes Dashboard来对资源和对象进行可视化管理。

最后,Docker推出不完全开源的Docker Datacenter套件,后面又把开源版本命名为Moby并且推出不开源的版本,可能让社区和生态玩家对Docker Engine的商业倾向有点担忧。

总之,从设计模式、工具、最佳实践、商业模式来看,明星产品Kubernetes是让人更加放心的容器编排产品。

到此,关于Docker和Kubernetes的简介到此结束, 2018作为深圳市城市公共服务云建设最重要的一年,我们会竭尽全力建设出万众瞩目的公有云,带大家“腾云驾雾,翱翔苍穹”。而后续我们还会有文章对Kubernetes作更多介绍,敬请关注。

1.遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.原创文章,请转载时务必注明文章作者和"来源:第一科技网",不尊重原创的行为或将追究责任;3.作者投稿可能会经编辑修改或补充。

相关文章
网友点评