集群管理和容器编排工具 SwarmKit

Apache
Google Go 查看源码»
跨平台
Docker
2016-06-20
花仲马

SwarmKit是Docker公司开源的Docker集群管理和容器编排工具,其主要功能包括节点发现、基于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)状态,除了禁止创建新任务外,当前节点上的其他任务也会被调度到其他节点上。

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

Docker 开源集群管理和容器编排工具 SwarmKit

最近Docker公司开源了Docker集群管理和容器编排工具SwarmKit,其主要功能包括节点发现、基于raft算法的一致性和任务调度等。 基本概念 服务器上运行SwarmKit工具的swarmd命令后,即可将其加入...

2016/06/20 08:05

没有更多内容

加载失败,请刷新页面

没有更多内容

2
回答
试用docker 1.12 swarmkit遇到的问题

用docker service create 创建的服务里. [root@centos-node4 ~]# docker service ls ID ...

2016/08/02 00:35

没有更多内容

加载失败,请刷新页面

没有更多内容

Docker Swarm的前世今生

概述 在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与《Kubernetes实践录》一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得...

2018/06/19 07:10
1K
1
Docker Swarm的前世今生

概述 在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与《Kubernetes实践录》一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得...

2018/06/19 15:05
0
0
Learn Docker – Fundamentals of Docker 18.x 免积分下载

学习Docker - Docker 17.x的基础知识:使用容器增强软件部署工作流程 您需要了解的所有内容,以便将您的应用程序容纳在一起并准备好在生产中运行 主要特征 启动并运行基本的推进Docker的概念...

01/06 11:48
1
0
Rancher 1.6 实战

Rancher 2.0出来一段时间了,最大的感受就是容器云界的各种平台都开始倒向K8S了,而rancher 2.0最大的亮点就是对各种公有容器云平台的支持,2.0中对docker swarm生态系统的支持彻底没有,swa...

2018/08/30 11:03
36
0
docker swarm 集群安装Visualizer

概述 对于docker swarm集群的监控来说,这个东西是比较容易入手的一个监控系统,而且比较简单,不是特别的复杂 什么是Visualizer 首先Visualizer是一个图形化显示docker swarm集群中各个节点...

2018/07/05 12:38
33
0
快速上手 Swarm mode搭建集群

一、概述 Swarm 是使用 SwarmKit 构建的 Docker 引擎内置(原生)的集群管理和编排工具。Swarm 集群由 管理节点 和 工作节点 组成。 本篇使用的环境包括3个节点,一个作为Swarm的manager节点...

2018/12/11 19:15
79
0
100个容器周边项目,点亮你的容器集群技能树

摘要: 大规模的容器技术运用从来不是一项独立工程,而是一个汇集虚拟化技术、容器编排、任务调度、操作系统、容器仓库、跨节点网络、分布式存储、动态扩缩、负载均衡、日志监控、故障自恢复...

2018/05/22 18:43
17
0
100个容器引擎项目,点亮你的容器集群技能树

大规模的容器技术运用从来不是一项独立工程,而是一个汇集虚拟化技术、容器编排、任务调度、操作系统、容器仓库、跨节点网络、分布式存储、动态扩缩、负载均衡、日志监控、故障自恢复等系统性...

2018/05/16 15:28
23
0
100个容器周边项目,点亮你的容器集群技能树

摘要: 大规模的容器技术运用从来不是一项独立工程,而是一个汇集虚拟化技术、容器编排、任务调度、操作系统、容器仓库、跨节点网络、分布式存储、动态扩缩、负载均衡、日志监控、故障自恢复...

2018/05/22 18:37
4
0
linux 给目录增加sgid权限

给目录添加sgid权限,可以使在该目录下创建文件或文件的所属组继承该目录的所属组. 假设该目录的所属组是www,那么添加了sgid权限后,无论你是用什么账户创建文件,其所属组都是www 下面提供下...

2018/01/17 21:13
15
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部