上下文
最近公司需要调研类似 EMCHub 这样支撑算力同享的服务。榜首直觉是运用 K8S 或 K3S,作为 CNCF 孵化的顶级项目,同时也是当时云原生生态运用最广的编列体系。但是在学习 EMC Hub 源码过程中,偶然发现它是依据 Nomad 做的集群办理。
相比之下,Nomad 愈加轻量级,支撑的编列能力也更全面。最优秀的是,体积只有 40 多兆,能很方便的集成到各种事务环境中。
Nomad 简介
Nomad 是一款依据开源,功用强壮的调度程序和集群编列引擎。能够轻松办理从单机到大规模集群的各种容器和非容器化应用程序,完结快速布置和跨平台运转。
Nomad 首要特点
- 作为单个二进制文件运转,资源占用少,
- 支撑将资源办理和调度集成到一个独自的体系中,
- 支撑多种驱动程序运转 job,包括 Windows、Java、VM、Docker 等,
- 支撑分布式和高可用,
- 支撑多数据中心,能够跨数据中心调度,
- 强壮的可伸缩性,可在现实生产环境中扩展到10K 节点的集群(K8S v1.29 是 5k ),
- 支撑插件功用,可与 Terraform、Consul、Vault 无缝集成,用于供给资源调配、服务发现和隐秘办理。
Nomad 布置
咱们还是以 Docker 环境进行介绍
安装 Docker
# 1. 下载 Docker Desktop 并安装
# 下载地址:https://docs.docker.com/desktop/install/mac-install/
# 2.验证 Docker
sudo docker version
装备 Nomad
挑选项目目录 nomad-bootcamp,下载 Nomad 二进制文件,并挑选适合你体系的安装包。
咱们采用 Mac 环境和二进制文件的方法运用。其他安装方法见:developer.hashicorp.com/nomad/insta…
# 项目目录
mkdir example_03 && cd example_03
# 下载安装包
curl -O 'https://releases.hashicorp.com/nomad/1.7.6/nomad_1.7.6_darwin_arm64.zip'
# 解压安装包
unzip nomad_1.7.6_darwin_arm64.zip && rm -rf nomad_1.7.6_darwin_arm64.zip
# 验证安装包
./nomad --version
# 输出版本信息
#
# Nomad v1.7.6
# BuildDate 2024-03-12T07:27:36Z
# Revision 594fedbfbc4f0e532b65e8a69b28ff9403eb822e
发动 Nomad
Nomad 一般可分为三部分:Server、Client和Job,他们之间的关系是Server 将 Job 调度到 Client 进行履行。
Nomad 依据 .hcl 文件的装备履行,以下是咱们生成的一个 Server 和 Client 的发动装备文件。
# data_dir 为绝对路径
data_dir = "/Users/xxx/nomad-bootcamp/example_03/data"
bind_addr = "0.0.0.0"
server {
enabled = "true"
bootstrap_expect = 1
}
client {
enabled = "true"
servers = ["0.0.0.0"]
}
其他装备编写见:developer.hashicorp.com/nomad/docs/…
加载装备文件,发动 Server 和 Client 节点。
./nomad agent -config nomad.hcl
运用 WebUI
官方支撑了一款简洁的 UI 界面,访问http://127.0.0.1:4646/ui
,即可进入咱们的 WebUI 办理界面
以下咱们测验经过 WebUI 运转一个 Job,详细是:点击 Jobs
-> Run Job
Run Job
包括上传装备文件和运用模版装备两种方法,咱们挑选模版方法运转
从 templates 中挑选 Hello World 模版并且履行它
等待布置完结
之后 点击 Allocations
-> 选中详细使命
,就能够找到体系为 Job 分配的 IP 和端口号
点击链接,即可访问得到你布置的服务内容
以上就是本期的全部内容,首要演示经过 Nomad 装备文件发动集群和经过 UI 进行 Job 使命的履行。笔者荒生
,一名资深的技术开发,谢谢大家的观看,点赞、谈论、加重视
你的支撑就是笔者的动力,有问题也能够私信笔者
或留言问询
。