Docker Swarm Mode简介与核心概念
什么是Docker Swarm
Docker Swarm是Docker官方的一种容器编排方案,用于管理跨主机的Docker容器,可以快速对指定服务进行水平扩展、部署、删除
一个Docker Swarm集群通常由多个安装有Docker且运行在Docker Swarm Mode的主机组成,角色包含Managers(管理者)、Workers(执行节点),一个节点可以兼拥有这两个角色或之一
在Docker 1.12以前,Docker Swarm作为一个独立的集群容器编排软件(Swarmkit)形式存在,在之后,它与Docker集成在了一起,可以称之为Docker Swarm Mode
特性
- 集群管理与Docker集成 - 在Docker 1.12以后,Docker Swarm不再作为单独的集群管理软件,而是直接集成到Docker Engine.
- 去中心化 - 你可以将Docker镜像部署到一台或多台服务器上
- 声明式服务模式 - 你可以使用声明式的方法定义一套应用stack
- 扩展 - 你可以指定task(Swarm的最小粒度) 的数量,简单理解就是容器数
- 状态自动调节 (Desired state reconciliation)- Swarm Manager角色会不断地检查服务与其副本的状态,当有副本不可用时,会创建新的副本替换不可用副本,保证可用性
- 多主机网络 - 当为Swarm集群指定overlay网络时,Swarm自动为容器指定overlay的网络ip
- 服务发现 - Docker Swarm的管理节点会为服务分配唯一DNS名称与负载均衡,Docker Swarm内置了DNS server
- 负载均衡 - 除了自动的负载均衡,你还可以使用自定义的负载均衡器转发各服务的对外暴露的端口
- 默认安全通信 - 节点间通信默认强制使用TLS加密,可选使用自签发的密钥或CA组织发的证书
- 滚动升级 - 升级服务过程中,可以配置延迟部署的时间,如果出现问题时,可以快速还原之前的版本
Docker Swarm 模式核心概念
节点(Nodes)
每台加入Docker Swarm的主机即是一个节点,这是最简单的理解,每个节点可以是管理节点(Manager Nodes),也可以是执行节点(Worker Nodes),亦可兼具这两个角色
当部署服务到Swarm集群的时候,你将一个Service提交到Manager Nodes,Manager Nodes会被服务拆分成Task(Swarm中最小粒度,可能仅包含一个容器),分发到Worker Nodes,Worker Nodes执行接收到的Task,完成部署,Manager Nodes监听服务的状态
服务与任务 (Services And Tasks)
一个Service定义了很多执行在Workers节点与Managers节点上的Task
创建一个Service时需要指定docker镜像,以及执行的命令或参数,当使用replicated services 模式时,Manager节点分发你指定的scale因子数量的复制Task到一个Worker节点上;使用global services模式时,则为集群中每一个Worker节点创建指定数量的复制Task
每个Task承载着一个运行着应用服务的容器,Manager节点通过设置的scale因子数分配Task到执行节点上,一个Task只能运行在一个Worker节点中,只有运行与失败两个状态
负载均衡(Load balancing)
Swarm Manager通过入口负载均衡( ingress load balancing)暴露的端口作为负载均衡策略
Manager默认会为Service会分配一个未被占用的端口,称为PublishedPort(也可自行指定),范围在30000-32767之间,外部服务访问Publishedport来访问运行中的Task
Swarm会将所有集群内的请求,转发到正常运行的节点上
Docker Swarm Mode简介与核心概念的更多相关文章
- Docker(一)简介及核心概念
1.简介 Docker是一个开源的应用容器引擎:是一个轻量级容器技术: Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像: 运行中的这 ...
- Docker Swarm 中最重要的概念- 每天5分钟玩转 Docker 容器技术(94)
从主机的层面来看,Docker Swarm 管理的是 Docker Host 集群.所以先来讨论一个重要的概念 - 集群化(Clustering). 服务器集群由一组网络上相互连接的服务器组成,它们一 ...
- ZooKeeper学习之路(一)—— ZooKeeper简介及核心概念
一.Zookeeper简介 Zookeeper是一个开源的分布式协调服务,目前由Apache进行维护.Zookeeper可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调/通知. ...
- ZooKeeper系列(一)—— ZooKeeper 简介及核心概念
一.Zookeeper简介 Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进行维护.Zookeeper 可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调 ...
- Nifi简介及核心概念整理
简介 Apache NiFi 是一个易于使用.功能强大而且可靠的数据拉取.数据处理和分发系统,用于自动化管理系统间的数据流. 它支持高度可配置的指示图的数据路由.转换和系统中介逻辑,支持从多种数据源动 ...
- Hive学习之路(一)—— Hive 简介及核心概念
一.简介 Hive是一个构建在Hadoop之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类SQL查询功能,用于查询的SQL语句会被转化为MapReduce作业,然后提交到Hadoop上运行. ...
- Hive 系列(一)—— Hive 简介及核心概念
一.简介 Hive 是一个构建在 Hadoop 之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类 SQL 查询功能,用于查询的 SQL 语句会被转化为 MapReduce 作业,然后提交到 ...
- Docker Swarm Mode 入门实践
本文来源 翻译并总结官方文档,添加自定义示例,参考自Docker 19.03版本官方文档 未来可能归档为:https://docs.docker.com/v19.03/ 2020.01.03为http ...
- 20、docker swarm
Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源.Swarm和Kuber ...
随机推荐
- 实践分享:开始用Cordova+Ionic+AngularJS开发App
http://www.cocoachina.com/webapp/20150707/12395.html 本文是一篇关于我本人在使用Cordova+Ionic以及AngularJS开发移动App的过程 ...
- shell不排序去重
一条命令搞定: awk '!a[$0]++' file 如果是第一次出现a[$0]++的值为0(假),而!a[$0]++的值就为1(真),之后就执行print $0 第二次或者两次以上的出现a[$ ...
- LeetCode63 Unique Paths II
题目: Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. H ...
- [C#] 如何分析stackoverflow等clr错误
有时候由于无限递归调用等代码错误,w3wp.exe会报错退出,原因是clr.exe出错了. 这种错误比较难分析,因为C#代码抓不住StackOverflowException等异常. 处理方法是:生成 ...
- MySQL列出当前月的每一天
因为工作的原因,要用MySQL列出当前月份每一天的日期,自己查了下网上资料都是列出最近一个月的日期的解决方案,自己根据查到的的方案,修改成了下面两个方案,在此记录下: 方案一: SELECT date ...
- 安装visualStudio 出现 cant install Microsoft.TeamFoundation.OfficeIntegration.Resources
本文告诉大家在安装 VisualStudio 时出现cant install Microsoft.TeamFoundation.OfficeIntegration.Resources如何安装 如果在安 ...
- behavior planning——15.cost function design weightTweaking
Designing cost functions is difficult and getting them all to cooperate to produce reasionable vehic ...
- poj 3743 LL’s cake (PSLG,Accepted)
3743 -- LL’s cake 搞了好久都过不了,看了下题解是用PSLG来做的.POJ 2164 && LA 3218 Find the Border (Geometry, PSL ...
- px em rem %作为单位使用
博客地址 :https://www.cnblogs.com/sandraryan/ px 我们都很熟悉啦,但是固定大小无法适配各种屏幕. rem是CSS3新增的一个相对单位(root em,根em), ...
- PyCharm indexing goes into infinite loop pycharm 不同的indexing
https://stackoverflow.com/questions/24955896/pycharm-indexing-goes-into-infinite-loop 5 1 I opened u ...