看看头条

海航云知道之Docker、Kubernetes 、Apach

无数的文章、社交媒体在探讨Docker、Kubernetes、Mesos三者之间孰优孰劣,但人们对于这三种技术都可以使用容器来部署、管理和扩展应用程序了解似乎并不足够,今天海航云将为大家介绍一下三者的概念。

海航云知道之Docker、Kubernetes 、Apach

Docker

它是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

一个完整的Docker有以下几个部分组成:

  • dockerClient客户端

  • Docker Daemon守护进程

  • Docker Image镜像

  • DockerContainer容器

在docker的网站上提到了docker的典型场景:

  • Automating the packaging and deployment of applications(使应用的打包与部署自动化)

  • Creation of lightweight, private PAAS environments(创建轻量、私密的PAAS环境)

  • Automated testing and continuous integration/deployment(实现自动化测试和持续的集成/部署)

  • Deploying and scaling web apps, databases and backend services(部署与扩展webapp、数据库和后台服务)

由于其基于LXC的轻量级虚拟化的特点,Docker相比KVM之类最明显的特点就是启动快、资源占用小。因此对于构建隔离的标准化的运行环境,轻量级的PaaS(如dokku), 构建自动化测试和持续集成D环境,以及一切可以横向扩展的应用(尤其是需要快速启停来应对峰谷的web应用)。

Kubernetes

作为Docker生态圈中重要一员,Kubernetes是Google多年大规模容器管理技术的开源版本。如Urs Hölzle所说,无论是公有云还是私有云甚至混合云,Kubernetes将作为一个为任何应用,任何环境的容器管理框架无处不在。正因为如此,目前受到各大巨头及初创公司的青睐,如Microsoft、VMWare、Red Hat、CoreOS、Mesos等,纷纷加入给Kubernetes贡献代码。

利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下:

  • 使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。

  • 以集群的方式运行、管理跨机器的容器。

  • 解决Docker跨机器容器之间的通讯问题。

  • Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。

海航云知道之Docker、Kubernetes 、Apach

Apache Mesos

Apache Mesos最初是UCBerkeley为创建下一代集群管理器而诞生的项目,并从如谷歌的Borg和Facebook的Tupperware中吸取经验进行完善。

Mesos引入了模块化架构,采用开源的方法,且其设计完全独立于底层基础架构。基于这些因素,Mesos很快被Twitter、Apple(Siri)、Yelp、Uber、Netflix以及许多领先的科技公司所采用,以支持他们在微服务、大数据和实时分析到弹性伸缩的一切实践。

作为一个集群管理器,Mesos具有以下几点功能:

  • 将数据中心资源整合成一个单一的池,以简化资源配置,同时在私有或公共云之间提供一致的应用程序和操作体验;

  • 在相同的基础设施上使用不同的工作负载,比如分析、无状态微服务、分布式数据服务和传统应用程序,以提高利用率,降低成本和空间;

  • 特定应用程序的任务(如部署、自修复、扩展和升级)设置为自动化day-two 操作;提供高可用的容错基础设施;

  • 在不修改集群管理器或现有应用程序的情况下,提供常绿的可扩展性来运行新的应用程序和技术;

  • 将应用程序和底层基础设施弹性扩展到数万个节点。

Mesos的独特之处还在于,可以单独管理各种不同的工作负载——包括传统的应用程序,如Java、无状态Docker微服务、批处理作业、实时分析和有状态的分布式数据服务。

通过上述对于Docker、Kubernetes 及Apache Mesos的介绍,想必你对于这三者的概念有了更深入的了解。今天的海航云知道的相关分享就到这里,各位读者下次见!

|\n|\r

赞 (1)
分享到:更多 ()