使用HashiCorp Nomad按需分配容器存储
这是来自Portworx的解决方案架构师Jeff Silberman的客座文章。
没有人想要管理存储,但是高价值的应用程序没有它是无法运行的。在理想的情况下,存储“就在那里”,而不需要考虑它——或者提供和管理它,对吗?
Portworx是一个针对容器工作负载的软件定义的持久存储解决方案,它提供了一个高度可用的弹性数据结构。Portworx云原生存储允许作业无缝运行超级融合的存储层,以获得最佳性能——同时也为数据可用性提供了丰富的选项。
最重要的是,Portworx非常适合DevOps——它易于部署和使用。
按需存储
有多容易?那么,如果您的HashiCorp Nomad作业可以按需存储,并在运行时提供呢?就像这样:
[...]task "mysql-server" {driver = "docker"config {image = "mysql/mysql-server:8.0"port_map {db = 3306}volumes = ["name=mysqlvol,size=10,repl=3/:/var/lib/mysql",]volume_driver = "pxd"}[...]
让我们看看这意味着什么。当mysql任务启动时,mysqlvol将以10GB的size和3倍的复制因子动态创建,确保数据将在3个不同的节点上复制。
不需要单独的存储供应周期,因为容器粒度虚拟卷是按需创建的。
什么是Portworx ?它是如何工作的?
在底层,Portworx是一个分布式块设备驱动程序,作为容器交付,安装在运行有状态应用程序的Nomad客户机上。Portworx并不仅仅充当现有存储的连接器,而是与您现有的节点运行高度聚合的关系,为在容器中运行的应用程序提供稀疏的、容器粒度的虚拟卷(和快照)。将块数据复制到多个节点可以保证高可用性。
Portworx使用kvdb,类似Consul,用于集群/节点拓扑发现和控制路径操作——但不用于任何数据路径操作,因此可以解决围绕可伸缩性和I/O性能的主要问题。
对于Nomad来说,Portworx运行在system调度器之下,这意味着如果将新的Nomad客户端添加到集群中,那么Portworx也会自动在这些客户机上运行。system调度器与弹性自动缩放组(ASGs)的概念非常一致,允许Portworx在新的客户端节点上自动旋转,无需手动安装。
Portworx在Nomad客户端(不是服务器)上运行。以下是Nomad客户端需要的相关选项:
client {enabled = trueoptions {"driver.raw_exec.enable" = "1""docker.privileged.enabled" = "true"}
}
如果你想深入了解,这很简单。Portworx doc站点已经被更新,包括详细的(和简单的)说明如何在Nomad下安装Portworx。
基础设施代码
“按需存储”功能与编写基础设施的HashiCorp道一致。存储需求是计算工作负载的一个基本元素,对于持久工作负载更是如此。到目前为止,提供存储一直是提交“票据”的带外过程——这是自动化的一个诅咒。现在有了Portworx内联卷规格——或者“随需存储”,“存储供应周期”就过时了。Jobs根据需要按需存储。
促进高效的工作流程
容器粒度卷快照是Portworx免费提供的一个有价值的企业特性。快照是即时创建的、在写入时复制的元数据标记,在创建时不消耗任何空间。更好的是,快照是可读/可写的。例如,假设您想要为CICD主构建周期的输出创建一个副本,以便将其传递给多个Jenkins slave以进行并行处理。使用Portworx,您可以通过创建多个卷快照,并让每个Jenkins slave在它自己的副本上并行操作来实现这一点。计算和存储效率的提高是显著的。
自己试试
DevOps的简单性已经成为一个产品基础——以内联体创建功能为例。没有人想要一个陡峭/复杂的学习曲线,这就是为什么Portworx让试验变得尽可能简单和无摩擦:该产品附带一个免费的30天试用许可证,所有功能都启用了。
自己尝试这个只有两个小需求:访问外部的“kvdb”,比如Consul。主机上的一个或多个未挂载/未格式化的原始设备(分区或磁盘)。
如果您已经有一个工作的Nomad集群满足这些需求,那么您可以立即尝试一下。这里有一个用于启动Portworx的参考Nomad作业文件。
如果您没有多余的Nomad集群可以尝试,您也可以轻松地玩转。Hashi-Porx AWS存储库提供了一个完整的集群,其中包含AWS中的Portworx/Nomad/Consul。在Hashi-Porx Vagrant 库中,Nomad和Consul都运行在-dev模式下的一个小小的Portworx集群上。
少即是多
没有比这更真实的了,尤其是在DevOps的世界里。你管理的东西越少,你的生活就会越好。Portworx特别设计来支持DevOps自动化,并允许容器的持久存储,以便高价值的有状态应用程序(比如数据库)能够在容器中运行。
我们很高兴能够为HashiCorp Nomad生态系统做出贡献,以更好地实现有意义的自动化工作流——减少实际工作。
使用HashiCorp Nomad按需分配容器存储相关推荐
- HashiCorp Nomad和遗留系统
容器看起来似乎无处不在.的确,它们使得将应用程序部署到开发.测试和生产环境中更加容易.然而,当容器不能工作时怎么办?为了充分利用目前可用的容器编排平台,必须对应用程序和部署流程进行大量更改.对于绿色领 ...
- 云原生存储详解:容器存储与 K8s 存储卷
作者 | 阚俊宝 阿里云技术专家 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新的机遇与挑战.本文为该系列文章的第二篇,会对容 ...
- k8s挂载目录_云原生存储详解:容器存储与 K8s 存储卷
作者 | 阚俊宝 阿里云技术专家 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新的机遇与挑战.本文为该系列文章的第二篇,会对容 ...
- docker修改镜像的存储位置_云原生存储详解:容器存储与 K8s 存储卷(内含赠书福利)...
作者 | 阚俊宝 阿里巴巴技术专家 参与文末留言互动,即有机会获得赠书福利! 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新 ...
- 云原生存储详解:容器存储与K8s存储卷
作者 | 阚俊宝 阿里云技术专家 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新的机遇与挑战.本文为该系列文章的第二篇,会对容 ...
- Docker 容器技术 — 容器存储
目录 文章目录 目录 容器存储 数据卷管理 挂载时创建卷 创建卷后挂载 数据容器管理 容器存储 数据卷管理 核心选项: -v 宿主机目录:指定挂载到容器内的目录. 映射多个宿主机目录,只需要多写几个 ...
- HashiCorp Nomad中的高级节点排干
HashiCorp Nomad 0.8引入了高级节点排干,以简化Nomad客户端节点的集群范围升级.本文探讨了如何使用HashiCorp Nomad改进的排干特性在不需要停机的情况下将现有的工作负载从 ...
- ceph存储原理_赠书 | Linux 开源存储全栈详解——从Ceph到容器存储
// 留言点赞赠书我有书,你有故事么?留言说出你的存储故事留言点赞前两名,免费送此书截止日期12.27号12.30号公布名单 // 内容简介 本书致力于帮助读者形成有关Linux开源存储世界的细致的拓 ...
- 基因行业容器存储解决方案
1.基因行业背景 1.1. 中国基因市场分析 基因组学是未来精准医疗的"基石".70%的基因企业选择使用云计算来处理基因组相关业务.过去一年内,阿里云为基因医学影像数据提供了安全可 ...
最新文章
- 算法工程师养成记(附精选面试题)
- linux运维脚本编写,Linux运维常用shell脚本实例 (转)
- Python内置函数(63)——super
- 【android】错误集锦及解决办法
- mysql decs倒叙查询_mysql按照日期方式查询
- python docx 合并文档 图片_Python+pymupdf处理PDF文档案例6则
- UVa140 Bandwidth 【最优性剪枝】
- 【BZOJ】【2049】【SDOI2008】洞穴勘测 Cave
- 64位WIN7系统下无法安装驱动/ 有黄色感叹号怎么办?
- c语言实验——G-鞍点计算
- m4a录音文件损坏修复_m4a音频文件损坏修复!
- OpenModelica模型导入Simulink运行的方法
- 2020 dns排名_2020年新版全球/全国各地ISP的DNS服务器地址表
- Fishermen Gym - 101964E(二分+前缀数组)
- 大数据-Flume(二)
- 30天自制操作系统第8天harib05d
- Reactor构架模式
- 制作coco数据集,并在mmdetection上实验
- 25则“验尸报告”— 创业失败者启示录
- PHP中iconv函数来转换编码,如UTF-8转GB2312
热门文章
- 说说WordPress的主查询函数-query_posts()
- parted--大于2T的分区工具
- Sublime Text Package Control错误另解
- EF里的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射
- rtorrent - 强大的命令行BT客户端
- oracle 内存结构 share pool sql解析的过程
- TeeChart.Direct2D.dll的使用
- AI算法工程师必备技术,快快积累!
- pthread_join和pthread_detach详解
- 使用深度学习解决拍照文档复杂背景二值化问题