您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>集成开发环境源码>

SwarmKit功能介绍及主要特征

大小:0.5 MB 人气: 2017-10-09 需要积分:1
 Docker在6月7日发布了SwarmKit,随后在上周的DockerCon大会中发布Docker1.12版本,宣布SwarmKit引入编排功能,终于为用户解决容器的集群管理、分布式应用在容器集群上的编排管理的两大难点。
  在SwarmKit的帮助下,我们得以将容器从只能部署在单一机器之上,升级为能够将多种复杂的容器应用广泛部署于大量设备当中。通过SwarmKit项目,使原生Docker Native即支持集群与分布式应用系统编排。
  接下来我会从SwarmKit的整体架构、试用体验以及与其他容器管理软件整体上的比较,这三个方面进行分享。
  SwarmKit功能介绍
  SwarmKit项目是Docker公司的一个开源项目,主要用来提供容器集群以及编排能力。其主要功能包括节点发现、基于raft算法的一致性和任务调度等。
  如下图所示,SwarmKit通过Containerd类似的方式接入Docker Engine,最终通过新的Docker API对外提供容器集群服务。
  SwarmKit功能介绍及主要特征
  整体架构
  
  目前来说SwarmKit还没有对外发布对于集群操作的API。但是,通过CLI的方式来进行集群的相关管理操作也是非常的简单。比如,通过在服务器上运行SwarmKit工具的swarmd命令后,即可将其加入到服务器集群中,是该服务器成为集群中的一个节点。SwarmKit的节点分为两类:
  工作节点(Worker):负责通过执行器运行任务。SwarmKit的默认执行器为Docker容器执行器(Docker Container Executor)。
  (1)内建分布式存储,不要额外的数据库
  (2)支持Rolling update
  (3)容器高可用,支持Zero applicaton downtime
  (4)通过TLS保证了节点之间通讯的安全
  管理节点(Manager):负责接收和响应用户请求,将集群状态调节到最终状态。在SwarmKit中,用户可以动态调整节点的角色,即在Manager和Worker之间转换。
  主要特征
  (1)服务状态一致性: SwarmKit会不断对比Worker节点的2个状态:期望状态和实际状态。当一个节点的这两种状态不一致时,SwarmKit会自动将服务中的任务调度到其他节点,以保证服务的正常运行。
  (2)服务类型:目前SwarmKit支持两种服务类型:
  复制服务:SwarmKit通过命令行参数可以在Worker节点上启动期望数量的服务实例,并通过调度策略合理地运行在不同的节点上。
  全局服务:SwarmKit会在集群中所有可用节点上启动一个任务。
  (3)配置更新:用户可以在任何时间对服务的一个或者多个配置进行更新,甚至更新整个服务的版本。在对某个服务执行完配置更新的命令后,SwarmKit会协调升级服务中的所有任务。默认策略是多个任务同时升级。现有的更新策略有:并发更新和延迟更新。
  并发更新:定义同时更新的任务数量,根据不同任务更新的实际结果来修正更新任务的最终状态,达到状态的一致。
  延迟更新:设置一组更新完成之后的最小等待时间。当配置升级时,SwarmKit会重启并等待任务变为运行状态,并在延迟结束后继续执行后续的更新;
  (4)重启策略:用户可以定制重启的条件、延迟和最大尝试次数。SwarmKit会检测任务状态,并按照用户定义的条件进行重启,同时SwarmKit会决定是否在不同节点启动任务,避免失效节点对服务产生影响。
  (5)内置路由机制:负载均衡对大规模集群来说是非常重要的,SwarmKit的结合使得Docker Engine自身支持路由功能,而与原生ovelay网络的结合,效果更加显著。容器原生的负载均衡,无需额外的集群设置,就可以兼容用户现有的负载均衡服务。通过IPVS与内核联合,实现可靠的负载均衡。
  集群管理
  SwarmKit的集群管理主要有以下特点:
  (1)状态存储:SwarmKit基于Raft算法在内存中维护集群的状态一致性,并能够在集群状态发生异常时迅速作出调度调整;
  (2)拓扑管理:SwarmKit支持通过API或者命令行方式来动态修改节点角色(Worker/Manager);
  (3)节点管理:操作者可以修改可用节点的状态。例如可以设置节点状态为Paused,以避免在该节点上创建新的任务;或者设置为Drained状态,除了禁止创建新任务外,当前节点上的其他任务也会被调度到其他节点上。
  任务调度
  SwarmKit在任务调度上主要有以下特点:
  (1)资源感知:SwarmKit能够感知可用节点上的资源利用情况,并以此分配和执行任务。
  (2)资源约束:用户可以通过约束表达式,将任务调度到符合表达式的节点上。对节点的约束条件包括节点ID、名称和标签等。
  (3)调度策略:目前SwarmKit默认采用Spread调度策略;在满足约束条件和资源需求的前提下,尽可能地将任务调度到负载最低的节点。

非常好我支持^.^

(0) 0%

不好我反对

(0) 0%

SwarmKit功能介绍及主要特征下载

相关电子资料下载

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!