当前位置: 首页 > 软件库 > 云计算 > PaaS系统/容器 >

SwarmKit

集群管理和容器编排工具
授权协议 Apache
开发语言 Google Go
所属分类 云计算、 PaaS系统/容器
软件类型 开源软件
地区 不详
投 递 者 晏永康
操作系统 跨平台
开源组织 Docker
适用人群 未知
 软件概览

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)状态,除了禁止创建新任务外,当前节点上的其他任务也会被调度到其他节点上。

  • SwarmKit是用于在任何规模上编排分布式系统的工具包。 它包括节点发现的原语,基于raft的共识,任务调度等。 其主要优点是: 分布式:SwarmKit使用raft共识算法来协调,不依赖单一故障点执行决策。 安全:群集中的节点通信和成员资格是开箱即用的。 SwarmKit使用相互TLS进行节点认证,角色授权和传输加密,自动执行证书颁发和轮换。 简单:SwarmKit操作简单,可以最大限度地减少

  • 近日,数人云发布基于Docker SwarmKit的容器管理面板Crane。该工具是国内首个基于最新Docker SwarmKit套件的容器管理工具,采用轻量化架构,具有Docker原生编排功能,可以帮助开发者快速搭建DevOps环境,快速体验Docker的各项最新功能。只需一条命令,几分钟即可完成安装。 数人云容器管理面板Crane具有应用治理、镜像管控、集群运维,以及镜像仓库认证管理四大功能,

  • 本文讲的是使用SwarmKit管理容器伸缩【编者的话】本文介绍了使用SwarmKit这个开源工具来扩展多节点系统,包括swarmctl和swarms这两个工具、swarm kit的特性和概念以及在Docker 1.12版本中集成的SwarmKit的使用。 本月在北美举行的LinuxCon ContainerCon会议上,来自Docker的Jérôme Petazzoni将会为大家带来一场全天的免费

  • SwarmKit的默认执行器为Docker容器执行器(Docker Container Executor); 管理节点负责接收和响应用户的请求,将集群状态调节成最终状态。 用户可以动态调整节点的角色。任务被组合成为服务,服务定义了任务类型和任务运行和更新的方式(如任务运行数量、启动间隔等)。特性服务编排SwarmKit在服务编排方面的特性主要有:服务状态一致性:SwarmKit会不断对比服务期望状

  • 我计划为一款新应用部署一套测试环境,而当时恰逢Docker SwarmKit发布。这绝对是个一探其究竟的好机会,在本篇文章中,我们将共同分享我在EC2服务器上安装SwarmKit的实际体会。 在Replicated,我们编写了一套平台,旨在帮助SaaS企业利用Docker将业务部署至专有环境当中。另外,过去两年中我个人在这款平台的构建中积累到大量调度与编排工具的使用经验。我们甚至专门为Docker

  • swarmd -d /tmp/node-1 --listen-control-api /tmp/node-1/swarm.sock --hostname mhc --engine-addr=tcp://109.105.4.65:2375 --tls  --tlscert=/etc/docker/cert.pem --tlskey=/etc/docker/key.pem -l debug swarm

  • 安装过程:https://www.cnblogs.com/lixuebin/p/10814019.html 部分问题解法:https://blog.csdn.net/u011897301/article/details/105758056 通过git clone或者download zip的方式下载,放置 $GOPATH/src/github.com/docker/swarmkit中 go get

  • ERROR: rpc error: code = Unimplemented desc = unknown method ListVolumes for service docker.swarmkit.v1.Control docker service未启动成功,重装docker或者重新激活。

 相关资料
  • 一、hadoop yarn 简介 Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.0 引入的集群资源管理系统。用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。 二、YARN架构 1. ResourceManager ResourceManager 通常在独立的机器上以后台进程的形式运行,它是整个集

  • 问题内容: 我有一个运行Node.js的api服务器,该服务器正在使用它的集群模块,并且测试看起来还不错。现在,我们的IT部门希望转而使用令我感到高兴的Docker容器,但除了玩转之外,我从未真正使用过它。但是我有一个想法,Node.js应用程序在单个Docker进程中运行,因此集群模块并不是最好的,因为单个Docker进程可能是安装过程中的一个慢点,直到在该进程中拆分请求为止通过集群模块。 因此

  • 主要内容:使用简介 Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。 支持的工具包括但不限于以下各项: Dokku Docker Compose Docker Machine Jen

  • 集群管理架构概述。 { "clusters": [], "sds": "{...}", "local_cluster_name": "...", "outlier_detection": "{...}", "cds": "{...}" } clusters (required, array) 群集管理器将执行服务发现,健康检查和负载平衡的上游群集列表。 sds (someti

  • 集群管理架构概述 v1 API 参考 v2 API 参考 统计 概述 健康检查统计 离群检测统计 动态HTTP统计 动态HTTP交叉树统计 按服务区动态HTTP统计 负载均衡统计 负载均衡子集统计 运行时设置 主动健康检查 离群异常检测 核心 区域负载均衡 熔断 集群发现服务 统计 健康检查 TCP健康检查 熔断 运行时配置

  • Envoy的集群管理器管理所有配置的上游集群。就像Envoy配置可以包含任意数量的监听器一样,配置也可以包含任意数量的独立配置的上游集群。 上游集群和主机从网络/HTTP过滤器堆栈中抽象出来,因为上游集群和主机可以用于任意数量的不同代理任务。集群管理器向过滤器堆栈公开API,允许过滤器获得到上游集群的L3/L4连接,或者到上游集群的抽象HTTP连接池的句柄(无论上游主机是支持HTTP/1.1还是H

  • 用户除了通过控制台管理集群外,还可以通过ssh直接登陆到主节点上进行操作。主节点上已经完成了集群环境的相关配置,您可以直接在主节点上执行命令。 您还可以通过ssh架设SOCKS5代理服务器后,访问到集群内原生的hadoop管理页面。 生成密钥对 在自己机器上,执行命令如下 ssh-keygen -f ./hadoop_key -C "emr public key" 其中-f指定文件,-C添加

  • 概览 我们用docker run指令来运行一个容器: 交互容器跑在前端. 守护进程跑在后台. 一些常用管理容器的命令: docker ps - 列出容器. docker logs - 输出容器日志. docker stop - 停止运行容器. Docker客户端非常简单,你只需要需要输入一些带有一系列参数的指令就可以: # Usage: [sudo] docker [command] [flag