上下文

最近公司需要调研类似 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 办理界面

一款比 K8S 更好用的编列东西——Nomod 单机布置

以下咱们测验经过 WebUI 运转一个 Job,详细是:点击 Jobs -> Run Job

一款比 K8S 更好用的编列东西——Nomod 单机布置

Run Job包括上传装备文件和运用模版装备两种方法,咱们挑选模版方法运转

从 templates 中挑选 Hello World 模版并且履行它

一款比 K8S 更好用的编列东西——Nomod 单机布置

等待布置完结

一款比 K8S 更好用的编列东西——Nomod 单机布置

之后 点击 Allocations -> 选中详细使命,就能够找到体系为 Job 分配的 IP 和端口号

一款比 K8S 更好用的编列东西——Nomod 单机布置

点击链接,即可访问得到你布置的服务内容

一款比 K8S 更好用的编列东西——Nomod 单机布置

以上就是本期的全部内容,首要演示经过 Nomad 装备文件发动集群和经过 UI 进行 Job 使命的履行。笔者荒生,一名资深的技术开发,谢谢大家的观看,点赞、谈论、加重视你的支撑就是笔者的动力,有问题也能够私信笔者留言问询