网站首页 > 技术文章 正文
Chapter 3. 编排和传递
创建 Docker 主机群集背后的主要动机是设计高可用性。大多数 (如果不是全部的话) 群集和编排工具 (如 Docker Swarm和 Kubernetes) 都可以利用群集来创建主从类型的关系。这可确保在环境中任何一个节点出现故障时, 始终有一个节点可回退。在将群集部署到云提供商时, 您可以利用以下几种技术来确保您的环境具有高可用性, 例如 "领事", 还可以通过部署 master 来利用云的本机容错设计和单独可用性区域中的节点。
Lesson Objectives
到本课结束时, 您将能够:
- 获取 Docker 群模式的概述
- 使用 Docker 引擎创建大量 Docker 引擎
- 在群中管理服务和应用程序
- 向上和向下扩展服务以处理应用程序上的更多请求
- 负载平衡 docker 群部署
- 安全的 Docker 容器和部署
编排
在我们当地的环境中运行容器很容易, 不需要我们付出太多努力;说到云, 我们需要一种不同的心态和工具来帮助我们实现这一目标。我们的环境应该是高可用性的、容错的和易于扩展的。协调资源和/或容器 (生成统一工作流) 的过程是业务流程。
首先, 让我们熟悉一些在业务流程中使用的术语:
- docker-engine: 这是指我们当前在计算机上的 Docker 捆绑包或安装
- docker-machine: 帮助我们在虚拟机上面安装docker的工具
- Virtual hosts: 运行在物理机里面的虚拟机
- docker-swarm: 一个Docker的集群管理工具
- docker host: 一个安装了docker的主机或者服务器
- Node: 一个连接到swarm集群的运行docker的节点
- Cluster: 一组Docker主机或者节点
- Replica: 实例的重复或副本数
- Task: 一个已经定义了的运行在节点上的任务
- Service: 一组任务的集合
现在我们至少已经熟悉了上面的术语, 我们已经准备好使用坞站机实现 Docker 群业务流程。
Docker Swarm简介
Docker Swarm是一个运行Docker容器的集群工具,允许我们像管理一个单独虚拟系统一样管理一个集群。这意味着我们可以在计算机上的多个主机上运行 Docker。
我们通过一个主要处理以及控制容器的管理者管理swarm集群。有了sarm管理者,可以创建一个或者多个管理者实例,防止主节点挂掉。同样,也就意味着我们在一个swarm集群里面,可以有不止一个管理者。
NOTE
一个swarm集群是从一个管理几点上创建的,其他Docker机器加入这个就请你,作为工作节点或者管理节点。
群集很重要, 因为它创建了一组提供冗余的协作系统, 从而创建了容错环境。例如, 如果一个或多个节点出现故障, Docker 群将故障转移到另一个工作节点。
The Swarm manager carries out the following roles:
Swarm管理者包含了如下角色:
- 接受docker命令
- 在集群里面执行命令
- 支持高可用;部署一个主要或者备用实例,当猪出现异常的时候,备用服务可以不中断工作。
Docker Swarm 使用调度来优化资源并确保环境中的效率.它将容器分配给最合适的节点。这也意味着Docker Swarm会将容器分配给最健康的节点。Docker Swarm使用计划任务来提高资源优化,确保高效。它会给容器分配到最合适的节点。
NOTE
记住,节点指的是运行容器的主机,不是容器。
Swarm可以使用如下的调度算法:
- Random:随机部署。
- Spread:Swarm会分配容器在最少容器的节点运行。
- Binpack:Binpack 策略涉及将新容器部署到容器数量最多的节点。
You can download VirtualBox at: https://www.virtualbox.org/wiki/Downloads:
NOTE
模拟一个DockerSwarm集群,我们需要安装一个hypervisor (虚拟机管理程序类型2是作为软件应用程序安装在现有操作系统上的虚拟机管理器),在使用VirtualBox的情况下,我们可以通过docker-machine创建多个在本地运行Docker的主机,并且将他们加入到swarm集群。如果我们使用云厂商的虚拟机,需要使用他们的计算资源来完成,例如AWS的EC2。
对于Windows操作系统,选择操作系统版本,可以获得一个下载链接。执行并安装VirtualBox。
猜你喜欢
- 2024-10-14 Docker Overlay 网络学习 dockercompose 网络
- 2024-10-14 盘点c++几种常见的设计模式及具体实现
- 2024-10-14 Docker新手福音!这个开源控制面板让你更快上手Docker
- 2024-10-14 Docker-掌握这三种方法,创建自己的docker镜像
- 2024-10-14 docker 基础概念 docker基于什么
- 2024-10-14 小白也能轻松上手,深度体验绿联私有云DX4600 Docker功能
- 2024-10-14 一文带你了解docker常用命令 docker常用命令及参数
- 2024-10-14 Docker最佳实践的反模式 docker反向代理
- 2024-10-14 docker中容器如何实现通信 docker容器之间如何通信
- 2024-10-14 工程化Docker:确保应用程序的可靠性、可扩展性和可维护性
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)