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会将所有集群内的请求,转发到正常运行的节点上

文章内容来源于官方文档翻译与理解,如有错误,还请不吝留言指出,谢谢合作

原文地址:https://www.cnblogs.com/hellxz/p/12134386.html

时间: 2024-11-06 07:22:04

Docker Swarm Mode简介与核心概念的相关文章

Docker(一)简介及核心概念

1.简介 Docker是一个开源的应用容器引擎:是一个轻量级容器技术: Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像: 运行中的这个镜像称为容器,容器启动是非常快速的. 什么是镜像?举个例子,当我们的Windows系统出现问题需要重装系统时,我们通常使用U盘或者光盘里的镜像系统进行安装,如下图所示 什么是容器?如果把.exe文件比作镜像,那我们的电脑就是安装后启动的容器 Linux中docker的示意图如下 2.核心概念 do

应用数据流状态管理框架Redux简介、核心概念及工作流

前几天给大家谈了谈React 不过它只是一个侧重于UI的框架 只能算作是MVC中的V(View视图) 而且只是DOM的一个抽象层,不是Web应用完整解决方案 如果仅仅用它构建大型项目 你会非常的吃力 简介 14年,Facebook提出Flux架构意图解决这个问题 15年,Dan Abramov将 Flux 与函数式编程相结合,创造了Redux,由于简单易学就开始流行起来 16年,Dan Abramov被facebook挖走了 Redux体积很小,如果删掉源码的空行和注释,连500行代码都不到 别

[docker] 02 CentOS安装docker(包含失败),安装命令简介,以及docker核心概念

主要内容: 一.安装docker(包含卸载重新安装) 二.配置docker服务 三.安装命令简介 四.docker核心概念 一.安装docker 1.1. 通过uname -r查看系统版本,为什么要查看系统版本呢?因为docker对CentOS有以下要求: a. CentOS 7及以后的版本 b. 64位操作系统 c. 内核版本至少3.10 1.2. 支持devicemapper存储类型 sudo yum update sudo yum install -y device-mapper-pers

Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指。

Docker简介 Docker是开源应用容器引擎,轻量级容器技术. 基于Go语言,并遵循Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux系统上,也可以实现虚拟化 容器完全使用沙箱技术,相互之间不会有任何接口 类似于虚拟机技术(vmware.vitural),但docker直接运行在操作系统(Linux)上,而不是运行在虚拟机中,速度快,性能开销极低 白话文,简介就是: Docker支持将软件编译成一个镜像,然

Docker核心概念

Docker的三大核心概念 镜像 容器 仓库 1.Docker镜像 Docker镜像类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包含了文件系统.镜像是创建容器的基础.通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并通过简单的命令就可以直接使用. 2.Docker容器 Docker容器类似于一个轻量级的沙箱(沙箱是一个虚拟的环境,在这份环境运行的程序都是独立的,不会对你的现用操作系统造

第二章 Docker的核心概念和安装

2.1核心概念 Docker镜像(Image)类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包含了文件系统. 2.2安装Docker Docker支持在主流的操作系统平台上使用,包括Ubuntu.CentOS.Windows以及MacOS系统等.这里我们重点介绍在CenOS系统下如何安装Docker.如何启动Docker. CentOS Docker支持CentOS6及以后的版本. 对于CentOS6系统可使用EPEL库安装Docker,命令如下: $ sudo yum i

ElasticSearch学习笔记-01 简介、安装、配置与核心概念

一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进行数据索引. Lucene只是一个框架,要利用它的功能,需要使用JAVA,并且在程序中集成Lucene.更糟的是,Lucene非常复杂,需要做很多的学习了解,才能明白它是如何运行的. Elasticsearch使用Lucene作为内部引擎,但是在使用它做全文搜索时,只需要使用统一开发好的API即可,

Docker的三大核心概念-01

Docker的三大核心为:镜像.容器.仓库.下面简单的介绍一下这三大核心概念. 1.docker镜像(image) 镜像是创建docker容器的基础,docker镜像类似于虚拟机镜像,可以将它理解为一个面向docker引擎的只读模块,包含文件系统. 创建镜像有三种方法: (1)基于已有镜像的容器创建.主要是利用docker commit命令. (2)基于本地模板导入.推荐利用OpenVZ提供的模板来创建. (3)基于dockerfile创建.首先按照dockerfile的格式,编写好docker

docker的核心概念和安装

docker的安装和配置 环境介绍: 操作系统:64bit CentOS7 docker版本:1.11.1(最新版本) 版本新功能:https://github.com/docker/docker/blob/master/CHANGELOG.md 安装步骤 安装准备: 要求: 内核版本最低为3.10 查看当前内核版本: uname –r 通过yum方式安装docker: 第一步:更新yum源: sudo yum update 第二步:增加docker的yum源: 输入命令:sudo tee /e