使用HashiCorp Nomad按需分配容器存储

19 篇文章 4 订阅
17 篇文章 10 订阅

这是来自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 = true
  options {
    "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生态系统做出贡献,以更好地实现有意义的自动化工作流——减少实际工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值