docker集群的作用:把若干台Docker主机抽象为一个整体,并且通过一个入口(集群管理器)统一管理这些Docker主机上的各种Docker资源。docker集群的优势有:可伸缩扩容,滚动升级,部署上线速度快等。
本教程操作环境:linux5.9.8系统、docker-1.13.1版、Dell G3电脑。
docker集群有什么用?
集群是一组运行docker并且加入在一个群组的多台机器,加入集群之后,你还可以继续运行自己的docker命令,但是现在这些机器由集群管理器在集群上执行的。
简单来说,就是把若干台Docker主机抽象为一个整体,并且通过一个入口(集群管理器)统一管理这些Docker主机上的各种 Docker 资源。
针对大公司来讲,docker集群是很有优势的,包括可伸缩扩容,滚动升级,部署上线速度快等。
docker容器可以把你的程序在linux系统中打包起来,然后使你的程序和其他程序隔离,就相当于你在一个虚拟机上装了一个软件,和电脑上的软件没有任何联系,但是它和虚拟机最大的不同就是它的性能开销特别小。
集群中的机器可以是物理或者虚拟的,加入群组后,每台机器都被称之为节点。集群管理器可以使用不同的策略来管理运行的容器,例如:emptiest node,这个命令用来填充那些利用最少的容器;global来确保每台机器只能获得指定容器服务的一个实例。
你可以将这些策略写入文件里面来执行集群管理器的策略。
集群管理器是在集群中唯一能够执行命令的机器,你也可以授权其它机器加入集群管理工作。被授权的机器只能够 Workers are just there to provide capacity,而不能让其它机器做什么或者不做什么。
docker开启集群模式后,你的机器就成为了一台集群管理器,然后docker所运行的命令将是管理集群的命令,而不仅仅是在你当前机器上运行。
docker集群管理器-Swarm
Docker Swarm 包含两方面:一个企业级的 Docker 安全集群,以及一个微服务应用编排引擎。
集群方面,Swarm 将一个或多个 Docker 节点组织起来,使得用户能够以集群方式管理它们。
Swarm 默认内置有加密的分布式集群存储(encrypted distributed cluster store)、加密网络(Encrypted Network)、公用TLS(Mutual TLS)、安全集群接入令牌 Secure Cluster Join Token)以及一套简化数字证书管理的 PKI(Public Key Infrastructure)。我们可以自如地添加或删除节点。
编排方面,Swarm 提供了一套丰富的 API 使得部署和管理复杂的微服务应用变得易如反掌。通过将应用定义在声明式配置文件中,就可以使用原生的 Docker 命令完成部署。
此外,甚至还可以执行滚动升级、回滚以及扩缩容操作,同样基于简单的命令即可完成。
以往,Docker Swarm 是一个基于 Docker 引擎之上的独立产品。自 Docker 1.12 版本之后,它已经完全集成在 Docker 引擎中,执行一条命令即可启用。到 2018 年,除了原生 Swarm 应用,它还可以部署和管理 Kubernetes 应用。
Swarm 的配置和状态信息保存在一套位于所有管理节点上的分布式 etcd 数据库中。该数据库运行于内存中,并保持数据的最新状态。关于该数据库最棒的是,它几乎不需要任何配置,作为 Swarm 的一部分被安装,无须管理。
关于集群管理,最大的挑战在于保证其安全性。搭建 Swarm 集群时将不可避免地使用 TLS,因为它被 Swarm 紧密集成。
在安全意识日盛的今天,这样的工具值得大力推广。Swarm 使用 TLS 进行通信加密、节点认证和角色授权。自动密钥轮换(Automatic Key Rotation)更是锦上添花!其在后台默默进行,用户甚至感知不到这一功能的存在。
关于应用编排,Swarm 中的最小调度单元是服务。它是随 Swarm 引入的,在 API 中是一个新的对象元素,它基于容器封装了一些高级特性,是一个更高层次的概念。当容器被封装在一个服务中时,我们称之为一个任务或一个副本,服务中增加了诸如扩缩容、滚动升级以及简单回滚等特性。
推荐学习:《docker视频教程》
以上是docker集群有什么用的详细内容。更多信息请关注PHP中文网其他相关文章!