"docker/swarm"和"docker/swarmkit"的关系

The relation between "docker/swarm" and "docker/swarmkit"

我已经熟悉了docker/swarm, but find there occurs a "new" project: docker/swarmkit. But unfortunately, after reading the README,我还是搞不懂docker/swarmkit的作用是什么。谁能帮忙解释一下docker/swarmdocker/swarmkit之间的关系? docker/swarmkit为什么诞生?

根据此博客:

Swarmkit used within Swarm Mode ( 1.12) and tightly integrated with Docker Engine

https://sreeninet.wordpress.com/2016/07/14/comparing-swarm-swarmkit-and-swarm-mode/

Docker Swarm 是较旧的 (2014) Docker 本机编排工具。它是来自 Docker 引擎的 standalone,用于将 Docker 引擎连接在一起以形成集群。然后可以连接到集群上的 Swarm 和 运行 容器。 Swarm 有几个特点:

  • 允许您指定发现服务(consul 等...)
  • 对容器放置位置的一些控制(使用过滤器/约束/分配策略等...)
  • 公开与 Docker 引擎本身相同的 API,允许第 3 方工具无缝交互

Swarmkit 是 Docker 团队开发的一个新的 (2016) 工具(我相信其中大部分来自于对 SocketPlane 的收购),它为 运行建立一个集群并将任务(注意:不一定Docker容器)分发到集群中的机器。 Swarmkit 的自述文件非常好,这里是宣传的主要功能:

  • 分布式:SwarmKit 使用 Raft 共识算法进行协调,不依赖单点故障来执行决策。
  • 安全:Swarm 中的节点通信和成员资格开箱即用。 SwarmKit 使用双向 TLS 进行节点身份验证、角色授权和传输加密,自动执行证书颁发和轮换。
  • 简单:SwarmKit 操作简单,并最大限度地减少了对基础设施的依赖。它不需要外部数据库来操作。

Docker Swarm 模式(版本 1.12 >) 使用 Swarmkit 库和功能,以便在多个容器编排主机(一个集群)操作起来非常简单和安全。 Docker 本身内置了一组新功能(主要功能是 docker swarm),可让您启动新的 Swarm 并部署 任务 (在这种情况下是 Docker 容器,但不一定是,请参阅上面的 Swarmkit)到该集群。

Docker Swarm 页面所述,它并未被弃用,并且仍然是 Docker 多主机编排的可行方法,但是 Docker Swarm Mode(它在后台使用 Swarmkit 库)是开始新 Docker 需要在多个主机上进行编排的项目。