新闻中心

docker集群是什么

作者 / 无忧主机 时间 2020-07-01 16:29:47

docker集群是什么?集群是一组协同工作的服务实体(可理解为服务器),用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就像是一个服务实体,但事实上集群由一组服务实体组成。

在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.51php.com/news/29461.html

1
1
1
1
1
1
1