首页 > 代码库 > 02_swarm mode key concepts
02_swarm mode key concepts
这个章节主要介绍一下Docker Engine 1.12的集群管理和编排的一些关键词语
什么是swarm
使用SwarmKit 创建基于docker engine的集群管理功能和编排功能
你可以通过初始化swarm或者是加入一个存在的swarm来启用engine中的swarm mode.
一个swarm可以是一个docker egines集群或者节点。通过docker engine CLI 和 API 所包含的命令来管理swarm 节点(新增或者移除节点),或者通过swarm来部署/ 编排服务。
当你直接使用docker服务,不带有swarm mode,你执行的是容器命令;当你在swarm mode 下使用docker,你使用的是编排服务。你可以在同一个docker 实例中同时运行 swarm服务或者是单实例的容器。
什么是节点
一个节点是一个包含有docker engine 的swarm 实例。你可以在单独的一台物理服务器或者是云服务器上面跑1个或者是多个节点。当时,生产环境swarm的部署通常把节点分布到不同的物理主机或者云服务器上面。
在一个swarm中部署应用程序,你可以提交一个服务定义给 manager node. manager节点处理一批的工作叫做worker节点的任务
管理节点通过执行编排和集群管理功能来维护swarm集群的状态。管理节点选举一个单独的领袖来领导编排任务。
工作节点从管理节点接收和执行任务。默认管理节点也会像工作节点一样运行服务。但是,你也可以把管理节点单独用来运行管理任务。每个工作节点都会有一个agnet用来报告任务的运行进度。管理节点通过接收来自工作节点的消息来维护swarm集群每个节点的状态。
服务和任务
一个服务是在工作节点执行定义一组任务的集合。它是swarm系统的重要组成部分,也是用户在swarm主要的配置部分。
当你创建一个服务,你要定义使用哪个镜像,在容器中执行哪个命令。
在复制服务的模型中,swarm管理节点分布了一定数量的复制任务,取决于你设定的扩容数量。
对应全局服务来说,swarm在集群中每个可用的节点运行一个服务的任务。
一个任务包含一个docker容器和一系列在容器中运行的命令。它是一系列的原子操作。管理节点根据在服务扩容中的数量来分配工作节点中运行任务的数量。一旦一个任务被分配到一个节点中,它不能够移除到别的节点,它只能运行在分配的节点上或者运行失败。
负载均衡
swarm 管理节点使用 ingress load balancing 暴露你想要给swarm集群外部使用的服务。
02_swarm mode key concepts