Docker 生态系统:调度和协调

介绍

Docker 工具提供构建、上传、下载、启动和停止容器所需的所有功能,适用于在最少容器的单主环境中管理这些流程。

然而,许多Docker用户正在利用该平台作为一个工具,可以轻松地在许多不同的主机上扩展大量容器。

在本指南中,我们将讨论 Docker 编程和编排工具,这些工具代表分布式部署管理员的主要容器管理界面。

计时集装箱、管弦乐和集群管理

当应用程序扩展到多个主机系统时,管理每个主机系统并抽象出底层平台的复杂性变得有吸引力。

在这种环境中,计划指的是管理员将服务文件加载到主机系统,从而确定如何运行特定容器的能力,而计划指的是加载服务定义的具体行为,在更一般的意义上,计划员负责将服务连接到主机的 init系统,以便在任何需要的容量下管理服务。

集群管理是控制一组主机的过程,这可能包括从集群中添加和删除主机,获取有关主机和容器的当前状态的信息,以及启动和停止流程。

为了在整个集群中运行和管理主机上的容器,编程器必须与每个主机的个别 init 系统进行交互。同时,为了方便管理,编程器提供了整个集群中服务状态的统一视图。

如果管理员决定在集群上运行服务(容器),则计划员通常会自动选择一个主机。

计划员如何做出计划决策?

计划员通常会定义默认的计划策略,这决定了当管理员没有输入时如何安排服务,例如,计划员可能会选择将新服务放置在目前最少活跃服务的主机上。

例如,如果两个集装箱应该始终在同一个主机上运行,因为它们作为一个单元,这种亲属性通常可以在计划过程中声明,同样,如果两个集装箱不应该放在同一个主机上,例如为了确保同一服务的两个实例的高可用性,这也可以定义。

计划员可能注意的其他限制可以由任意元数据来表示。 个别主机可能会被计划员标记和瞄准。 例如,如果一个主机包含应用程序所需的数据量,则可能需要这样做。

计划员提供的集群管理功能有哪些?

时间安排通常与集群管理功能相关,因为这两个功能都需要能够在特定主机和集群整体上运行。

集群管理软件可以用来查询集群成员的信息,添加或删除成员,甚至连接到单个主机以进行更细微的管理。

经常,集群管理也与服务发现工具或分布式关键值存储相关联,这些都特别适合存储此类信息,因为信息分散在集群本身,平台已经存在其主要功能。

因此,如果日程安排器本身不提供方法,则可能需要通过使用所提供的 API 来修改配置存储中的值来完成某些群集管理操作,例如,可能需要通过对发现服务的原始更改来处理群集会员的更改。

关键值存储也通常是可以存储有关个别主机的元数据的位置. 如前所述,标签主机允许您针对个人或群组来安排决策。

多容器部署如何适应时间表?

有时,即使应用程序的每个组件被分解成一个分散的服务,它们应该作为一个单一的单位进行管理。

考虑到集装箱组合的先进日程安排可通过几个不同的项目提供。

集群集装箱管理允许管理员将集合集装箱作为单个应用程序处理。作为一个单位运行紧密集成的组件,可简化应用程序管理,而不会牺牲分区化个别功能的好处,实际上,它允许管理员保持从集装箱化和面向服务的架构中获得的收益,同时尽量减少额外的管理负担。

将应用程序组合在一起可能意味着简单地将它们安排在一起,并提供能够同时启动和停止它们的能力,还可以允许更复杂的场景,例如为每个应用程序组配置单独的子网络或扩展整个集装箱,我们以前只能在集装箱规模上扩展。

什么是供应?

一个与集群管理相关的概念是提供。提供是将新主机带到网上并以基本的方式配置它们,以便它们做好工作准备。

虽然提供主机的最终结果应该始终是新系统可用,但方法取决于所使用的工具和主机类型有很大差异.例如,如果主机将是一个虚拟机,则可以使用vagrant等工具来创建新主机。大多数云提供商允许您使用API创建新主机。相反,提供纯硬件可能需要一些手动步骤。

提供可以作为一个由管理员启动的过程而留下来,或者它可能被连接到自动扩展的集群管理工具中。后一种方法包括定义请求额外的主机的过程以及应自动启动的条件。

什么是常见的日程安排?

在基本规划和集群管理方面,一些受欢迎的项目是:

  • fleet:舰队是CoreOS的编程和集群管理组件,它读取集群中的每个主机的连接信息,并提供类似系统的服务管理
  • marathon:马拉松是半球层安装的编程和服务管理组件。它与 mesos合作来控制长期运行的服务,并为流程和集装箱管理提供Web UI
  • Swarm:Docker的Swarm是Docker项目于2014年12月宣布的编程程序。

作为集群管理策略的一部分,中层层配置依赖于以下组件:

  • mesos:Apache mesos是一个抽象和管理集群中的所有主机资源的工具,它将整个集群中可用资源的集合呈现给上面建造的组件(如马拉松)。

在集装箱集群作为单个单位的先进规划和控制方面,有以下项目可用:

  • kubernetes:谷歌的先进程式安排程序, kubernetes 允许对在您的基础设施上运行的容器进行更大的控制。 容器可以被标记、组合,并给自己的子网进行通信.
  • 构成:Docker 组合项目创建以允许使用声明配置文件组合管理容器。

结论

集群管理和工作安排器是部署集装箱服务在分布式主机组中的关键部分,它们为实际启动和控制提供您的应用程序的服务提供了主要管理点。

Published At
Categories with 技术
Tagged with
comments powered by Disqus