Nomad 系列 -Nomad 挂载存储卷

简介: Nomad 系列 -Nomad 挂载存储卷

概述

显然,如果 Nomad 要运行有状态存储,那么挂载存储卷就是必备功能。

Nomad 允许用户通过多种方式将持久数据从本地或远程存储卷装载到任务环境中:

  • 容器存储接口(CSI)插件
  • Nomad 主机卷支持
  • Docker Volume 驱动程序

默认没有安装 CSI 的情况下,主要使用的是 Nomad 主机卷 方式。

Nomad 的主机卷允许将 Nomad 客户端上的任何目录挂载到分配中。这些目录可以是客户机上的简单目录,但也可以是挂载文件系统,如 NFS 或 GlusterFS。然后可以将这些 mounts 连接到任务组中的各个任务。

Tailscale 挂载 socket

在后文中,Traefik 要通过 Tailscale 的 socket 和 Tailscale 通信以获取证书。那么我么也可以通过 Nomad 主机卷(只读)的方式将 socket 挂载到 Traefik 容器中。

Nomad 主机卷简介

Nomad 主机卷 (Host Volume) 可以管理 Nomad 集群内运行的有状态工作负载的存储。

Nomad 主机卷提供了一种与工作负载无关的方式来指定资源,可用于 Nomad 驱动程序,如 execjavadocker

Nomad 主机卷使用步骤

创建主机目录

在集群中的 Nomad 客户端节点上,创建一个用于持久化 MySQL 数据的目录。对于本例,让我们创建目录 /opt/mysql/data:

sudo mkdir -p /opt/mysql/data
BASH

配置 Nomad 客户端

编辑对应的 Nomad 客户端上的 Nomad 配置以创建主机卷。

host_volume 块添加到 Nomad 配置的 client 块:

host_volume "mysql" {
  path      = "/opt/mysql/data"
  read_only = false
}
HCL

保存,然后在此客户端上 重新启动 Nomad 服务,以激活主机卷。在客户端上,您可以使用 nomad node status 命令验证主机卷是否已配置,如下所示:

$ nomad node status -short -self
ID           = 12937fa7
Name         = ip-172-31-15-65
Class        = <none>
DC           = dc1
Drain        = false
Eligibility  = eligible
Status       = ready
Host Volumes = mysql
Drivers      = docker,exec,java,mock_driver,raw_exec,rkt
...
BASH

Job 使用 Nomad 主机卷

以一个 MySQL Job - mysql.nomad.hcl 为例,示例如下:

job "mysql-server" {
  type        = "service"
  group "mysql-server" {
    count = 1
    volume "mysql" {
      type      = "host"
      read_only = false
      source    = "mysql"
    }
    task "mysql-server" {
      driver = "docker"
      volume_mount {
        volume      = "mysql"
        destination = "/var/lib/mysql"
        read_only   = false
      }
      env = {
        "MYSQL_ROOT_PASSWORD" = "password"
      }
      config {
        image = "hashicorp/mysql-portworx-demo:latest"
        ports = ["db"]
      }
    }
    network {
      port "db" {
        static = 3306
      }
    }
  }
}
HCL

具体说明如下:

  • volume "mysql" {: 指定要使用的 volume, 类似于 K8s 中的 PV, 这里具体是:
  • type = "host": Nomad Host Volume 类型
  • read_only = false: 非只读
  • source = "mysql": source 是 Nomad Client 里配置的host_volume "mysql"
  • volume_mount {: Docker Driver 中的volume_mount块,指定挂载到容器中的具体路径,类似于 K8s 中的 PVC:
  • volume = "mysql": 对应的 volume 是上面的 mysql volume
  • destination = "/var/lib/mysql": 挂载到容器中的 /var/lib/mysql 目录
  • read_only = false: volume_mount 块的 read_only 配置

启动该 Job 即可使用 host volume:

nomad run mysql.nomad.hcl
BASH

完成🎉🎉🎉

总结

在本文中,使用客户端本地目录在 Nomad 客户端上配置了主机卷。我们创建了一个将此卷挂载到 Docker MySQL 容器的作业,并可以在主机卷中写入数据。并为后文 Nomad + Traefik + Tailscale 打下基础。

📚️参考文档

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
NoSQL 调度 数据中心
|
弹性计算 虚拟化 异构计算
2023阿里云GPU服务器租用价格表(包月/按小时/学生价)
2023阿里云GPU服务器租用价格表(包月/按小时/学生价)阿里云GPU服务器租用价格表包括包年包月价格、一个小时收费以及学生GPU服务器租用费用,阿里云GPU计算卡包括NVIDIA V100计算卡、T4计算卡、A10计算卡和A100计算卡,GPU云服务器gn6i可享受3折优惠,阿里云百科分享阿里云GPU服务器租用价格表、GPU一个小时多少钱以及学生GPU服务器收费价格表
1510 0
|
12月前
|
运维 供应链 小程序
低代码开发平台有哪些:国内外20个低代码平台盘点
在数字化转型背景下,低代码开发平台成为企业应对应用开发瓶颈的关键。本文深入解析国内外20个主流平台,涵盖普元、微软Power Apps、钉钉宜搭等,从集成能力、用户体验、移动端支持、技术实力等维度评估,结合金融、制造、零售等行业落地案例,揭示低代码如何提升开发效率、加速业务创新,并提供选型建议与ROI量化方法,助力企业科学决策。
627 13
|
12月前
|
SQL Oracle 关系型数据库
19c多租户架构下的UNDO管理- Local Undo
Oracle 12c引入多租户架构,PDB共享CDB的UNDO表空间。19c新增Local Undo特性,支持各PDB独立管理UNDO,提升性能、隔离性与可管理性,且为热克隆、PDB迁移等高级功能的前提。建议19c环境启用Local Undo。
1008 10
|
11月前
|
传感器 人工智能 运维
拔俗AI巡检系统:让设备“会说话”,让隐患“早发现”,打造更安全高效的智能运维
AI巡检系统融合AI、物联网与大数据,实现设备7×24小时智能监测,自动识别隐患并预警,支持预测性维护,提升巡检效率5倍以上,准确率超95%。广泛应用于工厂、电力、交通等领域,推动运维从“被动响应”转向“主动预防”,降本增效,保障安全,助力数字化转型。(238字)
1331 0
|
SQL 存储 HIVE
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
本文整理自鹰角网络大数据开发工程师朱正军在Flink Forward Asia 2024上的分享,主要涵盖四个方面:鹰角数据平台架构、数据湖选型、湖仓一体建设及未来展望。文章详细介绍了鹰角如何构建基于Paimon的数据湖,解决了Hudi入湖的痛点,并通过Trino引擎和Ranger权限管理实现高效的数据查询与管控。此外,还探讨了湖仓一体平台的落地效果及未来技术发展方向,包括Trino与Paimon的集成增强、StarRocks的应用以及Paimon全面替换Hive的计划。
2153 1
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
|
NoSQL 网络协议 Redis
Nomad 系列 -Nomad 网络模式
Nomad 系列 -Nomad 网络模式
|
监控 安全 Ubuntu
Linux内核升级指南####
本文将深入探讨Linux操作系统的内核升级过程,旨在为系统管理员和高级用户提供一份详尽的操作指南。通过分析升级前的准备、升级过程中的关键步骤以及升级后的配置优化,本文旨在帮助读者安全、高效地完成内核升级,从而提升系统性能和安全性。 ####
1381 7
|
Kubernetes Go Docker
Kubernetes + CRI + Kata + Firecracker
在最近的AWS re:invent 2018上,AWS又发布了一系列新的产品,在这些产品中,最受关注的无疑就是面向serverless的Firecracker。Firecracker是针对目前现有的虚拟化技术在serverless应用场景中的各种不足,而专门为serverless量身打造的一项新的虚拟化技术。
11460 0
Kubernetes + CRI + Kata + Firecracker
|
存储 数据安全/隐私保护
贴片卡与插拔卡的优缺点
在讨论贴片卡(通常指的是嵌入在设备内部的存储卡,如SIM卡、eMMC等)与插拔卡(如SD卡、microSD卡等,用户可以轻松插入和拔出的存储卡)的优缺点时,我们可以从多个方面进行比较: