当前位置:云计算技术专区 → 正文

Docker发布集群工具SwarmKit

责任编辑:jackye 作者:金灵杰 |来源:企业网D1Net  2016-06-16 09:27:06 本文摘自:INFOQ

最近Docker公司开源了Docker集群管理和容器编排工具SwarmKit,其主要功能包括节点发现、基于raft算法的一致性和任务调度等。基本概念服务器上运行SwarmKit工具的swarmd命令后,即可将其加入到服务器集群中,该服务器就成为集群中的一个节点。SwarmKit将节点分为两类:工作节点负责通过执行器运行任务。SwarmKit的默认执行器为Docker容器执行器(Docker Container Executor);

管理节点负责接收和响应用户的请求,将集群状态调节成最终状态。

用户可以动态调整节点的角色。任务被组合成为服务,服务定义了任务类型和任务运行和更新的方式(如任务运行数量、启动间隔等)。特性服务编排SwarmKit在服务编排方面的特性主要有:服务状态一致性:SwarmKit会不断对比服务期望状态和实际状态,发现二者不符时(如服务扩容、节点失效),SwarmKit会自动将服务中的任务调度到其他节点。

服务类型:目前SwarmKit支持两种服务类型

复制型服务(Replicated Services),针对这类服务SwarmKit会在节点上启动期望数量的副本;

全局服务(Global Services),这类服务SwarmKit会在所有可用几点上启动一个任务;

配置项升级:用户可以在任何时候修改服务的一个或多个配置。当配置被修改后,SwarmKit会协调升级服务中的所有任务,默认的升级策略是批量同时升级。目前支持的升级策略选项有:

并行度:定义并行更新的任务数量;

延迟:设置一组更新完成之后的最小等待时间。当配置升级时,SwarmKit会重启任务,并且等待任务状态为运行中,再等待配置的延迟后,继续执行后续的更新批次;

重启策略:用户可以定制重启的条件、延迟和最大尝试次数。SwarmKit会检测任务状态,并按照这些配置进行重启,同时SwarmKit会决定是否在不同节点启动任务,避免失效节点对服务产生影响。

调度SwarmKit在调度功能上功能有:资源感知:SwarmKit能够感知节点上的资源,并以此分配和执行任务。

资源约束:用户可以通过约束表达式,将任务约束到符合表达式的节点上。对节点的约束条件包括节点ID、名称和标签等。

调度策略:目前SwarmKit实现的调度策略是在满足约束条件的前提下,尽可能的分配到负载最低的节点。

集群管理SwarmKit对于集群及其节点的管理支持:状态存储:SwarmKit在内存中维护集群的状态,并能够在集群状态发生异常时迅速作出调整;

拓扑状态管理:SwarmKit支持通过API或者命令行动态修改节点角色;

节点管理:SwarmKit API支持用户修改节点状态。例如可以将节点状态设置为中止(Paused),以避免在该节点上创建新的任务;或者设置为枯竭(Drained)状态,除了禁止创建新任务外,当前节点上的其他任务也会被调度到其他节点上。

总结相比于之前的Swarm,这次发布的SwarmKit使用更加方便,无需再依赖外部协调软件进行服务发现。同时对容器运行进行了抽象,API更加间接。SwarmKit特性和其他服务编排框架如mesos,kubernetes等比较类似,目前SwarmKit还在活跃开发中,能否攻城略地,让我们拭目以待吧。

关键字:SwarmKitDocker

本文摘自:INFOQ

x Docker发布集群工具SwarmKit 扫一扫
分享本文到朋友圈
当前位置:云计算技术专区 → 正文

Docker发布集群工具SwarmKit

责任编辑:jackye 作者:金灵杰 |来源:企业网D1Net  2016-06-16 09:27:06 本文摘自:INFOQ

最近Docker公司开源了Docker集群管理和容器编排工具SwarmKit,其主要功能包括节点发现、基于raft算法的一致性和任务调度等。基本概念服务器上运行SwarmKit工具的swarmd命令后,即可将其加入到服务器集群中,该服务器就成为集群中的一个节点。SwarmKit将节点分为两类:工作节点负责通过执行器运行任务。SwarmKit的默认执行器为Docker容器执行器(Docker Container Executor);

管理节点负责接收和响应用户的请求,将集群状态调节成最终状态。

用户可以动态调整节点的角色。任务被组合成为服务,服务定义了任务类型和任务运行和更新的方式(如任务运行数量、启动间隔等)。特性服务编排SwarmKit在服务编排方面的特性主要有:服务状态一致性:SwarmKit会不断对比服务期望状态和实际状态,发现二者不符时(如服务扩容、节点失效),SwarmKit会自动将服务中的任务调度到其他节点。

服务类型:目前SwarmKit支持两种服务类型

复制型服务(Replicated Services),针对这类服务SwarmKit会在节点上启动期望数量的副本;

全局服务(Global Services),这类服务SwarmKit会在所有可用几点上启动一个任务;

配置项升级:用户可以在任何时候修改服务的一个或多个配置。当配置被修改后,SwarmKit会协调升级服务中的所有任务,默认的升级策略是批量同时升级。目前支持的升级策略选项有:

并行度:定义并行更新的任务数量;

延迟:设置一组更新完成之后的最小等待时间。当配置升级时,SwarmKit会重启任务,并且等待任务状态为运行中,再等待配置的延迟后,继续执行后续的更新批次;

重启策略:用户可以定制重启的条件、延迟和最大尝试次数。SwarmKit会检测任务状态,并按照这些配置进行重启,同时SwarmKit会决定是否在不同节点启动任务,避免失效节点对服务产生影响。

调度SwarmKit在调度功能上功能有:资源感知:SwarmKit能够感知节点上的资源,并以此分配和执行任务。

资源约束:用户可以通过约束表达式,将任务约束到符合表达式的节点上。对节点的约束条件包括节点ID、名称和标签等。

调度策略:目前SwarmKit实现的调度策略是在满足约束条件的前提下,尽可能的分配到负载最低的节点。

集群管理SwarmKit对于集群及其节点的管理支持:状态存储:SwarmKit在内存中维护集群的状态,并能够在集群状态发生异常时迅速作出调整;

拓扑状态管理:SwarmKit支持通过API或者命令行动态修改节点角色;

节点管理:SwarmKit API支持用户修改节点状态。例如可以将节点状态设置为中止(Paused),以避免在该节点上创建新的任务;或者设置为枯竭(Drained)状态,除了禁止创建新任务外,当前节点上的其他任务也会被调度到其他节点上。

总结相比于之前的Swarm,这次发布的SwarmKit使用更加方便,无需再依赖外部协调软件进行服务发现。同时对容器运行进行了抽象,API更加间接。SwarmKit特性和其他服务编排框架如mesos,kubernetes等比较类似,目前SwarmKit还在活跃开发中,能否攻城略地,让我们拭目以待吧。

关键字:SwarmKitDocker

本文摘自:INFOQ

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^