Swarm系列7--存储介绍
存储介绍
1. 存储使用
- 与docker一样,在使用swarm服务级别的时候可以定义服务的存储需求,
- docker存储介绍参考: Docker之应用数据管理(volume/bind mount/tmpfs),该文翻译自官网,介绍了三种存储方式。
- 操作参考:Swarm中使用Volume(挂载目录,mount),该文第6段介绍了使用创建volume的方式挂载卷来使用的操作。
- 官网关于存储引擎的介绍:About storage drivers.。这是关于宿主机如何存储镜像的问题。
- 关于存储引擎的原理:Docker 使用的 AUFS 文件系统
- 官网关于存储插件的介绍:Docker volume plugins,介绍在创建volume的时候自定义存储驱动的情况:$ docker volume create --driver=flocker volumename
- Flocker:容器的分布式存储平台
- 中文解析:窥探docker中的volume plugin内幕
- docker插件使用:使用插件扩展Docker,文末有可用插件。
- docker插件集合:Use Docker Engine plugins
2. 实际使用的问题
- 实际使用中,我们要创建多副本的服务,你在单个节点上创建的bind的目录是不能共享的,增加副本数,在其他机器上部署的时候如果没有相应的bin的目录就会挂载失败。这感觉swarm再service级别的概念引入,没有处理好挂载volume的问题。如下在2节点管理节点下发的任务,在20节点上是报错的,差了半天才知道是挂载volume在20节点上不存在。(这里是bind本地目录的问题)
- 参考:--mount 和 --volume 有一些差异需要注意:
--mount 可以直接使用卷,而无需事先使用 docker volume create 来创建卷,并且可以多组不同驱动的卷;
--mount 如果 type=bind 的话,宿主必须存在指定目录,否则报错。而 --volume 则在宿主不存在该路径时,在宿主创建一个空目录来进行绑定。 - 这里可以知道bind的话必须存在对应的目录,mount的话会自动创建卷
- 参考同样的问题和思考:Swarm 如何存储数据?
- 存储解决方案:参考:如何安装和配置 Rex-Ray
3. 存储解决方法
3.1 存储插件vieux/sshfs
- vieux/sshfs插件是一个存储插件:sshFS plugin for Docker,就是通过ssh登陆的方式在远程机器上创建volume。
$ docker plugin install --grant-all-permissions vieux/sshfs
- 使用参考:vieux/sshfs
3.2 存储插件 GlusterFS plugin
- GlusterFS plugin插件是一个基于GlusterFS的存储插件,需要安装glasterFS这个网络分布式存储系统。配合插件GlusterFS plugin来在集群内共享存储。
- 不过该插件已经不再更新。
3.3 存储插件REX-Ray plugin
- Rex-ray是一个分布式存储系统,可以使用Rexray CLI创建存储卷,该卷通过docker volume ls可以看到,驱动是rexray。卷可以挂载在容器集群的任何容器上,创建的服务挂载一个目录,服务实例不管在哪个节点上,都可以通过存储插件Rex-ray plugin挂载到该目录。参考操作视频:https://rexray.io/
- 需要安装Rex-ray存储服务。且提供文件服务的需要是在线存储。
3.4 存储插件Convoy plugin
- 是一个基于NFS的存储插件,并非分布式存储。NFS也需要在每个节点都提前挂载好。
- 参考:Convoy--Docker NFS volume plugin 简明使用指南
- rancher/convoy项目一年没更新了。
4. K8s的存储
- k8s的存储,参考:https://kubernetes.io/docs/concepts/storage/persistent-volumes/
- Kubernetes 支持为数众多的云提供商和网络存储方案。
各种支持的方式不尽相同,例如 GlusterFS 需要创建 Endpoint,Ceph/NFS 之流就没这么麻烦了。
Swarm系列7--存储介绍的更多相关文章
- Solidity教程系列1 - 类型介绍
现在的Solidity中文文档,要么翻译的太烂,要么太旧,决定重新翻译下,再加上代码事例讲解. 写在前面 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果 ...
- 智能合约语言 Solidity 教程系列5 - 数组介绍
写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 本文前半部分是参考Solidity官方文档(当前最新版本: ...
- 【01】emmet系列之基础介绍
[01]emmet系列之基础介绍 [02]emmet系列之HTML语法 [03]emmet系列之CSS语法 [04]emmet系列之编辑器 [05]emmet系列之各种缩写 相关网址 官网:http: ...
- STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights 既上一篇分享了中文字幕的摄像机介绍Cameras后,本篇分享一下第2个已完工的 ...
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之摄像机介绍Cameras
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之摄像机介绍Cameras 最近得到一些Unity官方视频教程,一看全是纯英文的讲解,没有任何字幕或者 ...
- WPF入门教程系列三——Application介绍(续)
接上文WPF入门教程系列二——Application介绍,我们继续来学习Application 三.WPF应用程序的关闭 WPF应用程序的关闭只有在应用程序的 Shutdown 方法被调用时,应用程序 ...
- .NET 4 并行(多核)编程系列之一入门介绍
.NET 4 并行(多核)编程系列之一入门介绍 本系列文章将会对.NET 4中的并行编程技术(也称之为多核编程技术)以及应用作全面的介绍. 本篇文章的议题如下: 1. 并行编程和多线程编程的区别. ...
- Linux从用户层到内核层系列 - GNU系列之glibc介绍
题记:本系列文章的目的是抛开书本从源代码和使用的角度分析Linux内核和相关源代码,byhankswang和你一起玩转linux开发 轻松搞定TCP/IP协议栈,原创文章欢迎交流, byhankswa ...
随机推荐
- 深入了解JVM虚拟机8:Java的编译期优化与运行期优化
java编译期优化 java语言的编译期其实是一段不确定的操作过程,因为它可以分为三类编译过程:1.前端编译:把.java文件转变为.class文件2.后端编译:把字节码转变为机器码3.静态提前编译: ...
- python 可执行
py2exe使用方法 py2exe作者:zzj 日期:2006-07-05字体大小: 小 中 大 一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.ex ...
- 咏南中间件D7客户端演示
咏南中间件D7客户端演示 咏南中间件MORMOT(http.sys)支持D6.D7等老版本开发客户端.客户端使用TClientDataSet内存表控件,数据序列使用TynSerial类.
- The implementation of iterators in C# and its consequences (part 1) Raymond Chen
Likeanonymous methods, iterators in C# are very complex syntactic sugar. You could do it all yoursel ...
- TortoiseGit进行squash后冲突,如何撤销
还没有commit之前,需要撤销. 最暴力的,直接用git reset --hard HEAD How to undo a git merge squash? If you run git merge ...
- gdal 遥感影像水体数据提取
- JS 将页面上的表格导出为 Excel 文件
如果在页面上展示了一个表格,想把这个表格导出为Excel文件,那么在要求不高的情况下,可以直接利用 JavaScript 的 Blob 和 Object URL 特性将表格导出.不过,这就是利用了 E ...
- python 设计模式之迭代器模式
#写在前面 真的有一大把年纪了,回头看看, 明明也很努力,却发现自己穷的一无所有,昨夜的事更是让我眼泪止不住的流,眼睛也肿了,委屈的愣是说不出一个字.前面荆棘丛生,身后已无退路,生活一地鸡毛,糟糕的一 ...
- 在基于acpi的linux系统上如何检查当前系统是否支持深度睡眠?
答: 执行以下命令: # dmesg|grep -i acpi |grep -i supports (S3表示支持深度睡眠) ACPI: (supports S0 S1 S3 S4 S5)
- Web安全测试检查点
Web安全测试检查点 上传功能 1.绕过文件上传检查功能 2.上传文件大小和次数限制 注册功能 1.注册请求是否安全传输 2.注册时密码复杂度是否后台检验 3.激活链接测试 4.重复注册 5.批量注册 ...