在docker集群服务中,包含以下几个概念是必须要清楚的。
Swarm
Swarm运行 Docker Engine 的多个主机组成的集群。
从 v1.12 开始,集群管理和编排功能已经集成进 Docker Engine。当 Docker Engine 初始化了一个Swarm或者加入到一个存在的Swarm时,它就启动了 Swarm Mode。
没启动Swarm Mode时,Docker执行的是容器命令;运行Swarm Mode后,Docker增加了编排service的能力。Docker允许在同一个Docker主机上既运行Swarm Service,又运行单独的容器。
node
Swarm中的每个Docker Engine都是一个node,有两种类型的 node:manager 和worker。
为了向Swarm中部署应用,我们需要在manager node上执行部署命令,manager node会将部署任务拆解并分配给一个或多个worker node完成部署。
manager node负责执行编排和集群管理工作,保持并维护Swarm处于期望的状态。Swarm中如果有多个manager node,它们会自动协商并选举出一个leader 执行编排任务。
woker node接受并执行由manager node派发的任务。默认配置下manager node同时也是一个worker node,不过可以将其配置成manager-only node,让其专职负责编排和集群管理工作。
work node会定期向manager node报告自己的状态和它正在执行的任务的状态,这样manager就可以维护整个集群的状态。
service
service定义了worker node上要执行的任务。swarm的主要编排任务就是保证 service处于期望的状态下。
举一个service的例子:在swarm中启动一个nginx服务,使用的镜像是 nginx:latest,副本数为3。
manager node负责创建这service,经过分析知道需要启动3个nginx容器,根据当前各worker node的状态将运行容器的任务分配下去,比如worker1上运行两个容器,worker2上运行一个容器。
运行了一段时间,worker2突然宕机了,manager监控到这个故障,于是立即在 worker3上启动了一个新的nginx容器。这样就保证了service处于期望的三个副本状态。
总之,swarm以节点(node)的方式组织集群(cluster);同时每个节点上面可以部署一个或者多个服务(service),每个服务又可以包括一个或者多个容器(container)。
以上是关于docker集群的介绍,西部数码的容器云是通过docker技术,在集群服务器上部署容器服务实现,功能强大、简单易用,拥有上万linux镜像,秒级开通,容器云产品链接 https://www.west.cn/paas/container/