docker swarm英文文档学习-2-关键概念
参考https://docs.docker.com/engine/swarm/key-concepts/
Swarm mode key concepts集群模式关键概念
本主题介绍Docker Engine 1.12集群管理和编配特性特有的一些概念。
What is a swarm?
Docker引擎中嵌入的集群管理和编配功能是使用swarmkit构建的。Swarmkit是一个独立的项目,它实现了Docker的编配层,并直接在Docker中使用。
集群由多台以集群模式运行的Docker主机组成,它们分别充当管理员managers(管理成员和委托)和工作者workers(运行群服务services)。给定的Docker主机可以是经理manager、工人worker,也可以同时扮演这两个角色。创建服务service时,需要定义其最佳状态(副本数量、可用的网络和存储资源、服务对外公开的端口,等等)。Docker的工作是维护所需的状态。例如,如果一个工作节点变得不可用,Docker将在其他节点上调度该节点的任务。任务task是一个运行的容器container,它是集群服务service的一部分,由集群管理器manager管理,而不是一个独立的容器。
集群服务相对于独立容器的一个关键优势是,你可以修改服务的配置,包括它所连接的网络和卷,而不需要手动重新启动服务。Docker将更新配置,使用过期配置停止服务任务,并创建与所需配置匹配的新任务。
当Docker以集群模式运行时,你仍然可以在参与集群的任何Docker主机以及集群服务上运行独立容器。独立容器和集群服务之间的一个关键区别是,只有群管理器才能管理群,而独立容器可以在任何守护进程上启动。Docker守护进程可以作为管理人员、工人或两者兼而有之地参与到集群中。
就像你可以使用 Docker Compose来定义和运行容器一样,你也可以定义和运行集群服务栈(swarm service stacks)。
请继续阅读有关Docker集群服务的概念的详细信息,包括节点 nodes、服务services、任务tasks和负载平衡load balancing。
Nodes节点
节点是参与集群的Docker引擎的实例。你也可以将其视为Docker节点。你可以在一台物理计算机或云服务器上运行一个或多个节点,但是生产集群部署通常包括分布在多个物理和云机器上的Docker节点。
要将应用程序部署到集群中,需要向manager节点提交服务定义。管理器manager节点将称为任务task的工作单元分派给工作节点node。
Manager节点还执行维护集群所需状态所需的编配和集群管理功能。Manager节点选择一个leader来执行编排任务。
工作节点接收并执行从管理节点分派的任务。默认情况下,管理器节点也作为工作节点运行服务,但是你可以将它们配置为只运行管理器任务且仅作为管理器节点。代理在每个工作节点上运行,并报告分配给它的任务。工作节点将其分配的任务的当前状态通知管理节点,以便管理器能够维护每个工作人员所需的状态。
Services and tasks 服务和任务
服务service是要在管理器或工作节点上执行的任务的定义。它是集群体系的中心结构,是用户与集群交互的主要根源。
在创建服务时,要指定要使用哪个容器镜像,以及在运行的容器中执行哪些命令。
在副本服务模型中,集群管理器manager根据你在所需状态下设置的规模在节点之间分发特定数量的副本任务。
对于全局服务,swarm在集群中的每个可用节点上为服务运行一个任务task。
任务task携带Docker容器和在容器中运行的命令。它是集群的原子调度单元。管理节点根据服务级别中设置的副本数量将任务task分配给工作节点。一旦将任务分配给一个节点,它就不能移动到另一个节点。它只能在指定的节点上运行或失败。
Load balancing负载均衡
swarm管理器使用入口负载平衡公开你希望向集群外部提供的服务。集群管理器manager可以自动为服务service分配一个发布端口,也可以为服务配置一个发布端口。你可以指定任何未使用的端口。如果你没有指定端口,群管理器将为服务分配一个端口,范围为30000-32767。
外部组件(如云负载平衡器)可以访问集群中任何节点的PublishedPort上的服务,无论该节点当前是否运行该服务的任务。集群中的所有节点都将连接路由到正在运行的任务实例。
swarm模式有一个内部DNS组件,它自动为集群中的每个服务分配一个DNS条目。集群管理器使用内部负载平衡,根据服务的DNS名称在集群中的服务之间分发请求。
docker swarm英文文档学习-2-关键概念的更多相关文章
- docker swarm英文文档学习-3-开始
https://docs.docker.com/engine/swarm/swarm-tutorial/ 1)Getting started with swarm mode 本教程向你介绍Docker ...
- docker swarm英文文档学习-5-在swarm模式中运行Docker引擎
Run Docker Engine in swarm mode在swarm模式中运行Docker引擎 当你第一次安装并开始使用Docker引擎时,默认情况下禁用swarm模式.在启用集群模式时,需要处 ...
- docker swarm英文文档学习-11-上锁你的集群来保护你的加密密钥
Lock your swarm to protect its encryption key上锁你的集群来保护你的加密密钥 在Docker 1.13及更高版本中,默认情况下,群管理器使用的Raft日志在 ...
- docker swarm英文文档学习-12-在集群模式中的Raft共识
Raft consensus in swarm mode 在集群模式中的Raft共识 当Docker引擎在集群模式下运行时,manager节点实现Raft 共识算法来管理全局集群状态.Docker s ...
- docker swarm英文文档学习-10-使用Docker密钥管理敏感数据
Manage sensitive data with Docker secrets使用Docker secrets管理敏感数据 About secrets 对于Docker Swarm服务来说,sec ...
- docker swarm英文文档学习-6-添加节点到集群
Join nodes to a swarm添加节点到集群 当你第一次创建集群时,你将单个Docker引擎置于集群模式中.为了充分利用群体模式,可以在集群中添加节点: 添加工作节点可以增加容量.当你将服 ...
- docker swarm英文文档学习-7-在集群中管理节点
Manage nodes in a swarm在集群中管理节点 List nodes列举节点 为了查看集群中的节点列表,可以在管理节点中运行docker node ls: $ docker node ...
- docker swarm英文文档学习-4-swarm模式如何运行
1)How nodes work Docker引擎1.12引入了集群模式,使你能够创建一个由一个或多个Docker引擎组成的集群,称为集群.集群由一个或多个节点组成:在群模式下运行Docker引擎1. ...
- docker swarm英文文档学习-8-在集群中部署服务
Deploy services to a swarm在集群中部署服务 集群服务使用声明式模型,这意味着你需要定义服务的所需状态,并依赖Docker来维护该状态.该状态包括以下信息(但不限于): 应该运 ...
随机推荐
- [日常] Go语言圣经--接口约定习题2
练习 7.3: 为在gopl.io/ch4/treesort (§4.4)的*tree类型实现一个String方法去展示tree类型的值序列. package main import( "f ...
- 深入理解java虚拟机---3垃圾回收机制GC
本文来源于翁舒航的博客,点击即可跳转原文观看!!!(被转载或者拷贝走的内容可能缺失图片.视频等原文的内容) 若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cn ...
- python中read()、readline()、readlines()函数
python文件读read().readline().readlines()对比 目录 一.read方法 二.readline方法 三.readlines方法 正文 读取文件的三个方法:read( ...
- js-ES6学习笔记-编程风格(2)
1.那些需要使用函数表达式的场合,尽量用箭头函数代替.因为这样更简洁,而且绑定了this. 2.所有配置项都应该集中在一个对象,放在最后一个参数,布尔值不可以直接作为参数. 3.不要在函数体内使用ar ...
- js常用正则收集
1:非纯空白字符串且长度大于1: /^\s*\S+[\s\S]*$/ 右侧可以正常匹配:“ 11 1 1 a ” .“ 1 aa” . ...
- 如何选型商业智能和分析平台,Gartner给了这些建议!
文 | 水手 在2017年1月20日Gartner发布的<China Summary Translation: 'Survey Analysis: Customers Rate Their BI ...
- Android--解决EditText放到popupWindow中,原有复制、粘贴、全选、选择功能失效问题
1.原来是将EditView放到了popupwindow,发现EditView原有的复制.粘贴.全选.选择功能失效了,所以便用DialogFragment代替了popupWindow 直接上代码 ①. ...
- [iOS] UICollectionView初始化滚动到中间的bug
转载请保留地址wossoneri.com 问题 首先看一下我之前写的demo:link demo是封装了一个控件,直接在MainViewController的viewWillAppear里初始化,并且 ...
- python自学——文件处理(强制刷新)
# 文件的刷新flash# 为什么要刷新文件呢?# 首先我们就要知道电脑是怎么储存信息的,# 写的代码保存在缓存中当缓存满了之后就会将内容储存到硬盘中. # 那这个跟刷新有什么关系呢?# 系统也会自动 ...
- 配置jboss EAP 6.4 数据库连接超时时间
Environment Red Hat JBoss Enterprise Application Platform (EAP) 6.x 7.x Issue Server throws followin ...