你是否真的了解 Docker Swarm?

深入浅出 Docker Swarm|DaoCloud 现推出 Docker Swarm 系列技术文章,为大家深入浅出地解读 Docker Swarm 的概念、使用方法以及最真实的案例分析。

 Docker 的集群扩展和容器调度

世界上最具创新力的公司都在使用微服务架构,不过都只是把应用的服务做了松散耦合。这也导致了必须要管理大量服务的新复杂性,从而需要在企业内部寻求引入容器化。

那些寻求 build、ship、run「Docker 化」应用的企业,需要工具来管理他们的资源和容器。Docker 提供了「End-to-End」的集成编排能力,从自动化主机分发和主机集群,到多容器应用定义和容器调度。


0

Docker Swarm 是一个为 IT 运维团队提供集群和调度能力的编排工具。用户可以把集群中所有 Docker Engine 整合进一个「虚拟 Engine」的资源池,通过执行命令与单一的主 Swarm 进行沟通,而不必分别和每个 Docker Engine 沟通。在灵活的调度策略下,IT 团队可以更好地管理可用的主机资源,保证应用容器的高效运行。

0

任何规模都有高性能表现

对于企业级的 Docker Engine 集群和容器调度而言,可拓展性是关键。任何规模的公司——不论是拥有五个还是上千个服务器——都能在其环境下有效使用 Swarm。

经过测试,Swarm 可拓展性的极限是在 1000 个节点上运行 50000 个部署容器,每个容器的启动时间为亚秒级,同时性能无减损。

灵活的容器调度

Swarm 帮助 IT 运维团队在有限条件下将性能表现和资源利用最优化。Swarm 的内置调度器(scheduler)支持多种过滤器,包括:节点标签,亲和性和多种容器部策略如 binpack、spread、random 等等。

比如,如果 IT 团队想把封装最小化,就可以使用 binpack,binpack 可以把每个节点加载到最大量,然后才去部署下一个节点。Spread 采取均衡策略,将容器平均部署到一系列复杂节点上。Random 允许团队在集群里随机部署到节点。这种灵活性让 IT 运维团队可以选择最适合自身工作环境的运行策略。

服务的持续可用性

企业与内外用户达成的服务水平协议,对公司应用环境的高可用性提出了很高的要求。宕机不仅会招致客户的不满,严重的还会伤害到经济利益。

Docker Swarm 由 Swarm Manager 提供高可用性,通过创建多个 Swarm master 节点和制定主 master 节点宕机时的备选策略。如果一个 master 节点宕机,那么一个 slave 节点就会被升格为 master 节点,直到原来的 master 节点恢复正常。

此外,如果某个节点无法加入集群,Swarm 会继续尝试加入,并提供错误警报和日志。在节点出错时,Swarm 现在可以尝试把容器重新调度到正常的节点上去。

和 Docker API 及整合支持的兼容性

Swarm 对 Docker API 完全支持,这意味着它能为使用不同 Docker 工具(如 Docker CLI,Compose,Trusted Registry,Hub 和 UCP)的用户提供无缝衔接的使用体验。

Docker Swarm 为 Docker 化应用的核心功能(诸如多主机网络和存储卷管理)提供原生支持。开发的 Compose 文件能(通过 docker-compose up )轻易地部署到测试服务器或 Swarm 集群上。Docker Swarm 还可以从 Docker Trusted Registry 或 Hub 里 pull 并 run 镜像。

综上所述,Docker Swarm 提供了一套高可用 Docker 集群管理的解决方案,完全支持标准的 Docker API,方便管理调度集群 Docker 容器,合理充分利用集群主机资源。

下期预告:Swarm 与 Riemann 的集群实时监控

敬请期待

Leave a Reply

Your email address will not be published. Required fields are marked *