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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介:

最近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还在活跃开发中,能否攻城略地,让我们拭目以待吧。

文章转载自 开源中国社区[http://www.oschina.net]

相关文章
|
10天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
48 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
5天前
|
应用服务中间件 PHP nginx
Docker-compose 编排lnmp(dockerfile) 完成Wordpress
通过使用Docker Compose,我们可以轻松编排LNMP环境并部署WordPress。本文详细介绍了各组件的Dockerfile和配置文件编写,并通过docker-compose.yml文件实现了整个环境的自动化部署。这种方法不仅简化了部署过程,还提高了环境的可移植性和一致性。希望本文能帮助你更好地理解和使用Docker Compose来管理和部署复杂的应用程序。
30 3
|
8天前
|
存储 缓存 Kubernetes
docker的替代工具有哪些?
【10月更文挑战第28天】docker的替代工具有哪些?
41 1
|
17天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
153 2
|
18天前
|
运维 监控 数据可视化
Docker容器可视化管理工具 - WGCLOUD基础介绍
WGCLOUD是新一代运维监测平台,它可以监控Docker容器的各种性能数据,比如内存,cpu,Image,运行时间,运行状态,端口映射等信息
|
1月前
|
Kubernetes Cloud Native 持续交付
云原生之旅:Docker容器化与Kubernetes集群管理
【9月更文挑战第33天】在数字化转型的浪潮中,云原生技术如同一艘航船,带领企业乘风破浪。本篇文章将作为你的航海指南,从Docker容器化的基础讲起,直至Kubernetes集群的高级管理,我们将一起探索云原生的奥秘。你将学习到如何封装应用、实现环境隔离,以及如何在Kubernetes集群中部署、监控和扩展你的服务。让我们启航,驶向灵活、可伸缩的云原生未来。
|
2月前
|
Ubuntu Linux pouch
Docker容器管理工具
文章介绍了Docker容器管理工具,以及早期使用的LXC容器管理工具,包括它们的安装、使用和相关技术特点。
74 10
Docker容器管理工具
|
1月前
|
运维 Prometheus 监控
提升运维效率:容器化技术与自动化工具的结合
在当今信息技术飞速发展的时代,运维工作面临着前所未有的挑战。为了应对这些挑战,本文将探讨如何通过结合容器化技术和自动化工具来提升运维效率。我们将介绍容器化技术的基本概念和优势,然后分析自动化工具在运维中的应用,并给出一些实用的示例。通过阅读本文,您将了解到如何利用这些先进技术来优化您的运维工作流程,提高生产力。
|
安全 数据安全/隐私保护 Docker
【转载】详解Docker 最低特权编排原则,安全与效率并行!(一)
Docker 平台和容器已经逐渐成为打包、部署和管理应用程序的标准。为了让容器在集群中于多节点间协调运行,这就需要一个关键的功能:容器编排(container orchestrator)。小编将分两篇为大家详细讲解这一重要功能。
1973 0

相关产品

  • 容器服务Kubernetes版
  • 下一篇
    无影云桌面