kubernetes 和 mesos + marathon的比拟
标签:
Kubernetes概述按照Kubernetes网站的说法,“Kubernetes是一个自动化,容器化应用措施部署扩展和打点的开放源代码系统。”Kubernetes由Google按照他们在出产中运行容器的经验使用称为Borg的内部集群打点系统(有时简称Omega)。 Kubernetes的体系布局依赖于这种经验,如下所示:
从上图可以看出,有一些与Kubernetes集群相关的组件。主节点将容器事情负载安排在事情节点。其他组件包孕:
etcd:该组件存储配置数据,可以通过简单的HTTP或JSON API由Kubernetes master API处事器访谒(可以看作集群数据库)。
APIserver:此组件是Kubernetes主节点的打点中心。它有助于各个组件之间的通信,从而连结集群的健康。
Controller Manager:该组件确保通过向上和向下扩展事情负载来使群集的期望状态与当前状态相匹配。
Scheduler:该组件将事情负载安排在适当的节点上。
Kubelet:该组件从API处事器接收pod规范并打点在主机中运行的pod。
以下列表供给了与Kubernetes相关的一些其他常用术语:
pod:Kubernetes编排调理容器以pod 为单位。同一个pod中的容器运行在同一个节点上,并共享资源,如文件系统,内核定名空间和IP地点。
Deployments:可以创建打点一组pod。部署可以与处事层一起用于程度扩展或确保可用性。
Services:可以直接访谒。 Kubernetes为集群供给一个DNS处事器,用于监视新处事,并允许他们通过名称进行寻址。处事是您的容器事情负载的“外在表示”。
Labels:关联到实际各类东西的键值对。它们可以用来搜索和更新多个东西作为一个单一调集。(例如:可以用标签区分,尝试环境,测试环境)
Mesos + Marathon概述Mesos是一个漫衍式内核,旨在为您的数据中心供给动态的资源分配。想象一下,你打点一其中型企业的IT部门。您需要在一天中的100个节点上运行事情负载,但是需要在25个小时后运行。 Mesos可以从头分配事情负载,以便其他75个节点在不使用时可以封锁电源。 Mesos也可以供给资源共享。如果您的某个节点产生故障,则可以将事情负载分配到其他节点中。
Mesos带有许多使用其资源共享成果的框架和应用栈。每个框架由一个调理器和一个执行器构成。 Marathon是一个框架(或元框架),可以启动应用措施和其他框架。 Marathon还可以作为容器编排平台,为容器事情负载供给扩展和自我修复。下图显示了Mesos + Marathon的架构。
Mesos和Marathon中有许多差此外组件。以下列表供给了一些常用术语:
Mesos Master:master这种类型的节点可以给多种框架共享资源,例如用于容器编排的Marathon,用于大规模数据措置惩罚惩罚的Spark以及用于NoSQL数据库的Cassandra。
Mesos Slave:Slave这种类型的节点执行实际事情任务,并且向master陈述请示可用资源。
Framework:Framework向Master注册,master允许Framework的任务在slave节点执行。
Zookeeper:这个组件供给了一个高度可用的数据库,这个数据库可以让群集连结此刻的状态,并且不变。
Marathon Scheduler:这个组件接收来自Mesos master的呈报。 Mesos master 供给当前集群可用的内存,CPU
Docker Executor:这个组件接收来自Marathon调理器的任务,并启动slave节点上运行容器。
Mesosphere DCOSMesosphere Enterprise DC / OS操作Mesos漫衍式系统内核,在容器和大数据打点根本上构建,供给安置,用户界面,打点和监视工具等成果。下图显示了DCOS的高级体系布局。
kubernetes 比拟 mesos + marathon 1. 应用界说
k8s: 可以使用Pod,部署和处事的组合来部署应用措施。一个pod是一组位于同一节点的容器,是部署的原子单位。部署可以在多个节点上具有副本。处事是容器事情负载的“外部表示”,并与DNS集成共同访谒。
marathon:从用户的角度来看,应用措施将作为Marathon在节点上调理的任务运行。 对付Mesos,应用措施是一个框架,可以是Marathon,Cassandra,Spark等等。 Marathon将容器调理为在从节点上执行的任务。marathon 1.4引入了pod 的观点( 如同 Kubernetes pod),但这不是marathon核心的一部分。 节点可以按照机架,,连接的存储类型等进行符号。启动Docker容器时可以使用这些约束。
2.应用的可扩展性k8s:每个应用措施层都被界说为一个pod,并且可以在通过声明性指定的部署进行打点时进行缩放,例如,在YAML中。 缩放可以是手动或自动的。
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31887.html