容器、容器云和容器化PaaS平台之间的关系.docxVIP

容器、容器云和容器化PaaS平台之间的关系.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

一直都有很多人迷惑于容器应该属于IaaS或是PaaS层,也搞不清楚容器云到底是该归到哪里,该由哪个团队来建设、哪个团队来维护。K8s是不是就等同于容器云?所以我们看到概念和定义的混乱,在实施容器云的时候也会有众多的分歧,无所适从。目前又有众多的公司推出容器化PaaS的概念,更搞不清楚谁是谁了。那么容器、容器云、容器化PaaS以及与Docker、Kubernetes之间是个什么样的关系?这是需要我们明确并理解的问题。容器是一种操作系统级虚拟化技术,Docker是一种容器引擎。使用Docker来运行操作容器。但从容器自身来说,其提供的是IaaS层能力。Kubernetes提供了容器调度和管理的能力,加上云计算租户功能,实现容器云平台功能。而基于容器技术所构建的应用开发、应用托管和应用运维平台则可以称为容器化PaaS平台,它是一种轻量化PaaS实现。结合日志、监控、认证、权限等基础能力则可以构建企业级的平台和可复用服务,采用微服务架构实现企业技术服务中台能力,支撑企业业务敏捷研发和模式转型。

一、容器

容器是一种轻量虚拟化技术,它不同于VMware虚拟化,所以其隔离性相对差、安全性差,但轻量也正是其特点。容器的概念其实也早就有之,只不过实践的选择有差别。早在2006年的时候,我当时所在的公司就提出了基于java的多jvmContainers概念并进行了产品实践,一个java容器可以运行多个jvm,不过因为java自身特性导致的后来转型并不成功,最后不得不放弃了。应用层容器和操作系统级容器的实现还是有很大差别。操作系统级的容器设计明显更合理,更易于实现和推广。通过标准化镜像封装,从而实现了环境一致性。

容器为了弹性伸缩能力倾向于无状态应用,这样简化了容器设计实现的复杂性。所以基于容器自身的特点,容器适用的场景并不是无限的。当然kubernetes从1.9版本正式支持有状态应用,增强了容器的场景适应能力,扩展了适用场景。

经常有人拿容器和虚拟机比较,虽然都是虚拟化,但二者差别还是很大的。虚拟机就好比是一个完整的人,而容器类似于妈妈肚子里的胎儿。它需要依赖于母体来生存,所以我们可以看到容器在操作系统中以进程的方式运行。容器的虚拟化损耗约1%,而虚拟机的损耗约20%左右。但是容器带来了管理和运维的复杂性。Docker提供了CLI和RESTAPI方式,都需要很高学习成本,在达到一定数量的容器后用CLI来管理和运维将会是噩梦,所以有DockerSwarm、Mesos、Kubernetes等容器调度管理框架的出现,提升管理和运维效率,降低运维难度和工作量。

既然容器也是操作系统级的虚拟化,其可以看作类似于虚拟机的对象,容器本身提供的服务依然是基础设施资源服务,所以容器应该是处于IaaS层。而基于容器技术和容器调度管理技术如kubernetes实现的容器云平台则封装了容器操作,提供平台能力,所以容器云平台应该属于PaaS层。这也是很多人直接把容器云平台称为PaaS平台的原因吧。不过确切的说,容器云平台并非真的PaaS。目前很多容器云平台所提供的能力无法满足应用开发、应用托管、应用运维的PaaS平台能力要求,而通常仅仅实现租户+云端的容器调度管理能力,依然有大量的CLI运维工作。对使用容器云的人员的学习成本和要求都比较高。

二、容器云

Kubernetes并不等于容器云,kubernets只是一种容器调度管理框架,和dockerswarm、mesos等一样,用于调度、管理容器。比如调度容器到匹配的资源上,管理容器的弹性伸缩、灰度发布、负载路由等。云计算很重要的一个概念是租户。租户租用共享的云计算资源,按需和用量计费,不用则不产生费用。而kubernetes中是没有租户的概念的。所以仅有kubernetes是不够的,kubernetes可以看作是容器云平台的内核,我们需要使用kubernetes来实现容器云平台,但还需要基于kubernetes进行封装,支持租户共享基础设施资源等能力。

租户可以是一个跨平台的概念。在容器云平台建设中,有容器云平台的租户设计是基于kubernetes的namespaces来划分的,一个租户使用一个namespaces,这会带来很大的局限性。虽然租户的定义没有明确标准,但从理论上说租户是高于kubernetes的,所以在kubernetes内部没有租户的概念,而是用namespaces来实现资源隔离。在容器云平台实践中,需要考虑租户的设计,可能是跨越多个kubernetes集群的,甚至跨越多个Iaa

文档评论(0)

外卖人-小何 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档