一款比 K8S 更好用的编排工具——Nomod 单机部署

上下文

最近公司需要调研类似 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 环境和二进制文件的方式使用。其他安装方式见:https://developer.hashicorp.com/nomad/install

# 项目目录
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"]
}

其他配置编写见:https://developer.hashicorp.com/nomad/docs/configuration

加载配置文件,启动 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 任务的执行。笔者荒生,一名资深的技术开发,谢谢大家的观看,点赞、评论、加关注你的支持就是笔者的动力,有问题也可以私信笔者留言询问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/572293.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

介绍部署esxi8.0产品的方式

什么是esxi esxi的中文叫裸机虚拟机管理器 ESXi是由VMware公司开发的一种裸机虚拟机管理器,全称为VMware ESXi。 ESXi是一种虚拟化技术,专门设计用于在物理服务器上运行虚拟机,它的主要特点是能够最大限度地降低硬件配置要求并简化部署过程…

systemd-journal(三)之systemd.journal-fields

文章目录 写在前面概述用户日志字段(User Journal Fields)MESSAGEMESSAGE_IDPRIORITYCODE_FILE, CODE_LINE, CODE_FUNCERRNOINVOCATION_ID, USER_INVOCATION_IDSYSLOG_FACILITY, SYSLOG_IDENTIFIER, SYSLOG_PID, SYSLOG_TIMESTAMPDOCUMENTATIONTIDUNIT, …

成都克鲁斯机器人电路板故障维修攻略,快来了解一下!

一、克鲁斯机器人电路板维修步骤 断开电源:在进行电路维修前,务必断开机器人的电源,确保安全。 拆卸电路板:根据电路图或维修手册,小心拆卸故障电路板。注意记录拆卸过程中的细节,以便后续重新安装。 更换损…

基于javaweb(springboot+mybatis)网上家具商城项目设计和实现以及文档报告

基于javaweb(springbootmybatis)网上家具商城项目设计和实现以及文档报告 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞…

Selenium三大等待详解

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、强制等待 1.设置完等待后不管有没有找到元素,都…

目前可用的免费云服务器整理汇总

随着云计算技术的飞速发展,越来越多的企业和个人开始关注并使用云服务器。为了吸引用户上云,各大云服务商纷纷推出了免费云服务器,供用户免费试用。本文将为大家整理汇总目前市场上可用的免费云服务器,以便大家更好地选择适合自己…

Cisco防火墙

ASA系列 1、防火墙工作原理(状态化防火墙) 2、在防火墙上配置ACL(基本都是命名的ACL) 3、在防火墙上配置NAT(防火墙设备一般放在局域网出口) 一、工作原理 1、系列 ASA550系列 2、ASA防火墙状态化防…

Kubernetes超详细教程,一篇文章帮助你从零开始学习k8s,从入门到实战

k8s 概述 k8s github地址:https://github.com/kubernetes/kubernetes 官方文档:https://kubernetes.io/zh-cn/docs/home/ k8s,全程是 kubernetes,这个名字源于希腊语,意为"舵手"或"飞行员” k8s 这…

C#学生信息成绩管理系统

一、系统功能描述 本系统包括两类用户:学生、管理员。管理员可以通过系统来添加管理员信息、修改管理员信息、添加学生信息、修改学生信息;开设课程、查询课程、录入成绩、统计成绩、修改成绩、修改个人密码等,而学生则可以通过系统来选择课…

Matlab基础入门

基础操作: matlab命令行操作: matlab可以使用命令行执行程序,例如下图运行后在右边工作区会产生响应的变量,如不写分号,则会直接运行。 clear命令:clear用于清除变量。clc命令:clc用于清屏。 m…

VMware和Xshell连接

1.开启虚拟机 2.使用管理员账户,点击未列出 3.输入用户名密码 4.点击编辑虚拟网络编辑器 5.记住自己的网关和IP地址 6.打开终端 7.输入命令,vim / etc / sysconfig / network -scripts / ifcfg-ens33 回车 8.修改图中两处按“ I ”键进入编辑 d…

3-iperf3 使用什么工具可以检测网络带宽、延迟和数据包丢失率等网络性能参数呢?

(1)iperf3简介 1.iperf3简介 2.用途(特点) 3.下载iperf3地址 (2)实战 1.iperf3参数 (1)通用参数(客户端和服务器端都是适用的) (2)客户端参数 实验1&…