当前位置: 首页 > news >正文

Nomad 系列-安装

系列文章

  • Nomad 系列文章

Nomad 简介

开新坑!近期算是把自己的家庭实验室环境初步搞好了,终于可以开始进入正题研究了。

首先开始的是 HashiCorp Nomad 系列,欢迎阅读。

关于 Nomad 的简介,之前在 大规模 IoT 边缘容器集群管理的几种架构-2-HashiCorp 解决方案 Nomad 有提到过,这里再快速过一遍:

Nomad: 一个简单而灵活的(主要是容器,但有不至于容器的)调度器和编排器,可在内部和云端大规模部署和管理容器和非容器化的应用程序

Nomad 使开发者能够使用声明式的基础设施即代码来部署应用程序。Nomad 使用 bin packing 来有效地安排工作并优化资源利用。

Nomad 凭借其简单性、灵活性可扩展性高性能与相关工具区分开来。Nomad 的协同作用和整合点 HashiCorp Terraform、Consul 和 Vault 使其特别适合轻松集成到 组织的现有工作流程,最大限度地减少关键计划的上市时间。

Nomad UI

Nomad 一些特性

  • Nomad 与 Consul 及 K8s 略有不同,它将基础设施划分为由一个 Nomad 服务器集群服务的区域,但可以管理多个数据中心或可用性区域。
  • Nomad 客户端到其服务器的延迟可能超过 100 毫秒。这允许具有一组 Nomad 服务器,所述 Nomad 服务器在具有单个“全球”区域和多个数据中心的情况下服务可以在地理上分布在一个大陆甚至世界上的所有客户端。

Nomad 安装

Nomad 是一个预编译的二进制文件,也可以作为几个操作系统的包。这次我们通过包管理器来安装。

以 Ubuntu/Deiban 为例:

前提条件

  • root 权限
  • IPtables 功能完整
  • Docker 已安装

🐾Warning

请注意,如果您在 Linux 上运行 Nomad,则需要以 root 身份(或使用 sudo )运行客户端 Agent,以便 cpuset accounting 和网络名称空间正常工作。

通过 APT 安装

首先安装所需的软件包:

sudo apt-get update && \sudo apt-get install wget gpg coreutils

其次添加 HashiCorp GPG 密钥:

wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg

添加官方 HashiCorp Linux 存储库:

echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list

更新并安装:

sudo apt-get update && sudo apt-get install nomad

通过 APT 安装,Nomad 会自动配置为 systemd 服务。可以设置为自启动:

sudo systemctl enable nomad

安装后步骤 - 安装 CNI 插件

这些步骤被认为是可选的,但对于运行 Nomad 和利用其他 Nomad 功能很有帮助。

当使用 bridge 网络模式时,Nomad 使用 CNI 插件配置网络名称空间。所有使用网络命名空间的 Linux Nomad 客户端节点都必须安装 CNI 插件。

以下命令安装 CNI 参考插件:

curl -L -o cni-plugins.tgz "https://github.com/containernetworking/plugins/releases/download/v1.3.0/cni-plugins-linux-$( [ $(uname -m) = aarch64 ] && echo arm64 || echo amd64)"-v1.3.0.tgz && \sudo mkdir -p /opt/cni/bin && \sudo tar -C /opt/cni/bin -xzf cni-plugins.tgz

确保 Linux 操作系统发行版已配置为允许通过网桥网络的容器流量通过 iptables 进行路由。这些可调参数可按如下方式设置:

echo 1 | sudo tee /proc/sys/net/bridge/bridge-nf-call-arptables && \echo 1 | sudo tee /proc/sys/net/bridge/bridge-nf-call-ip6tables && \echo 1 | sudo tee /proc/sys/net/bridge/bridge-nf-call-iptables

要在启动客户端节点时保留这些设置,请将包含以下内容的文件添加到 /etc/sysctl.d/bridge.conf:

net.bridge.bridge-nf-call-arptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

验证安装

要验证 Nomad 是否正确安装,请尝试 nomad 命令:

$ nomad version
Nomad v1.6.1
BuildDate 2023-07-21T13:49:42Z
Revision 515895c7690cdc72278018dc5dc58aca41204ccc

配置

📝Notes

我们不以 dev 模式启动 nomad.

Nomad 分为 Nomad Server 和 Nomad Client. 此次安装为:

  • 1 个 Nomad Server(仅 Server, 同一节点不启动 Client)
  • 多个 Nomad Client

某些配置设置对于服务器和客户端 Nomad Agent 来说是通用的,而某些配置设置必须仅存在于其中一个或另一个上。

Nomad 通用配置

/etc/nomad.d/nomad.hcl 创建配置文件:

sudo mkdir --parents /etc/nomad.d
sudo chmod 700 /etc/nomad.d
sudo touch /etc/nomad.d/nomad.hcl

将此配置添加到 nomad.hcl 配置文件:

🐾Warning:

根据您的情况,将 datacenter 参数值替换为部署 Nomad 集群的数据中心的标识符。

datacenter = "dc1"
data_dir = "/opt/nomad"
  • datacenter -运行 Agent 的数据中心
  • data_dir - Agent 存储状态的数据目录

Server 配置

/etc/nomad.d/server.hcl 创建配置文件:

sudo touch /etc/nomad.d/server.hcl

将此配置添加到 server.hcl 配置文件:

🐾Warning:

将 bootstrap_expect 值替换为您正在部署的 Nomad 服务器数量;建议三到五个。 我这里是家庭实验室环境,1 个就够用了。

server {enabled = truebootstrap_expect = 1
}

server 节包含以下参数:

  • enabled -指定此 Agent 是否应以服务器模式运行。所有其他服务器选项取决于设置的此值。
  • bootstrap_expect -集群中预期的服务器数量。不提供此值,或者此值必须与群集中的服务器数量一致。

Client 配置

/etc/nomad.d/client.hcl 创建配置文件:

sudo touch /etc/nomad.d/client.hcl

将此配置添加到 client.hcl 配置文件:

client {enabled = trueservers = ["192.168.2.1"]
}

client 节包含以下参数:

  • enabled -指定此 Agent 是否应在客户端模式下运行。所有其他客户端选项都取决于此值的设置。
  • servers - Nomad Servers 地址列表

🐾Warning:

该配置未进行安全加固。没有配置 ACL 以及 TLS.

启动

sudo systemctl start nomad
sudo systemctl status nomad
❯ sudo systemctl status nomad
● nomad.service - NomadLoaded: loaded (/usr/lib/systemd/system/nomad.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2023-08-26 11:15:11 CST; 11h agoDocs: https://nomadproject.io/docs/Main PID: 1648 (nomad)Tasks: 13CGroup: /system.slice/nomad.service└─1648 /usr/bin/nomad agent -config /etc/nomad.d

至此 Nomad 的 Server 和 Client 启动完毕,可以通过 http://<server_ip>:4646 进行访问。如下:

Nomad UI Server

Nomad UI Clients

🎉🎉🎉

📚️参考文档

  • Installing Nomad for Production | Nomad | HashiCorp Developer

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

相关文章:

Nomad 系列-安装

系列文章 Nomad 系列文章 Nomad 简介 开新坑&#xff01;近期算是把自己的家庭实验室环境初步搞好了&#xff0c;终于可以开始进入正题研究了。 首先开始的是 HashiCorp Nomad 系列&#xff0c;欢迎阅读。 关于 Nomad 的简介&#xff0c;之前在 大规模 IoT 边缘容器集群管…...

网络版五子棋C++实现

目录 1.项目介绍 2.开发环境 3.核心技术 4.环境搭建 5.WebSocketpp介绍 5.1WebSocketpp是什么 5.2为什么使用WebSocketpp 5.3原理解析&#xff1a; 5.4WebSocketpp主要特性 6.WebSocketpp使用 7.JsonCpp使用 8.MySQL API 9.项目模块设计以及流程图 10.封装日志宏…...

项目招标投标公众号小程序开源版开发

项目招标投标公众号小程序开源版开发 以下是一个招标投标公众号小程序的功能列表&#xff1a; 用户注册与登录&#xff1a;用户可以注册账号并登录公众号小程序。项目发布&#xff1a;用户可以发布招标项目的详细信息&#xff0c;包括项目名称、招标单位、项目描述、招标要求…...

华为OD机试-机器人走迷宫

题目描述 机器人走一个迷宫,给出迷宫的x和y(x*y的迷宫)并且迷宫中有障碍物,输入k表示障碍物有k个,并且会将障碍物的坐标挨个输入. 机器人从0,0的位置走到x,y的位置并且只能向x,y增加的方向走,不能回退. 如代码类注释展示的样子,#表示可以走的方格,0代表障碍,机器人从0,0的位置…...

Jenkins搭建步骤Linux环境

1、进入目标目录开始准备环境 安装jdk 安装maven 安装tomcat 安装node 下载Jenkins.war并且拷贝进tomcat的webapp的文件夹下。 环境变量配置如下自行更改&#xff1a; #--------------For JDK---------------- export JAVA_HOME/usr/local/java/jdk1.8.0_192 export PATH/usr…...

2023 AZ900备考

文章目录 如何学习最近准备考AZ900考试&#xff0c;找了一圈文档&#xff0c;结果发现看那么多文档&#xff0c;不如直接看官方的教程https://learn.microsoft.com/zh-cn/certifications/exams/az-900/ &#xff0c;简单直接&#xff0c;突然想到纳瓦尔宝典中提到多花时间进行思…...

青翼科技基于VITA57.1的16路数据收发处理平台产品手册

FMC211是一款基于VITA57.1标准规范的实现16路LVDS数据采集、1路光纤数据收发处理FMC子卡模块。 该板卡支持2路CVBS&#xff08;复合视频&#xff09;视频输入&#xff0c;能够自动检测标准的模拟基带电视信号&#xff0c;并将其转变为8位ITU-R.656接口信号或者4:2:2分量视频信…...

Ansible_自动化运维实战(一)

1.DELL的一款服务器的价格、型号、配置&#xff08;CPU&#xff0c;内存、硬盘、支持的RAID功能&#xff09; DELL 服务器的定价、型号和配置因型号而异&#xff0c;可以通过访问 DELL 官方网站或联系 DELL 客户服务获取具体信息。一种示例是 DELL PowerEdge R740&#xff0c;其…...

说说Flink中的State

分析&回答 基本类型划分 在Flink中&#xff0c;按照基本类型&#xff0c;对State做了以下两类的划分&#xff1a; Keyed State&#xff0c;和Key有关的状态类型&#xff0c;它只能被基于KeyedStream之上的操作&#xff0c;方法所使用。我们可以从逻辑上理解这种状态是一…...

适合心理法律在线咨询预约含视频图文电话咨询功能的小程序开发

目前智能手机普及&#xff0c;很多以前需要线下咨询的场景都被搬到了线上&#xff0c;这样既可以使咨询者更方便&#xff0c;也可以使被咨询者接待效率更高&#xff0c;服务更多咨询者。基于此我们开发了专门的一款具有线上咨询功能的小程序&#xff0c;同时为了方便被咨询者服…...

Redis-Cluster集群操作--添加节点、删除节点

一、环境部署 部署好Redis-Cluster集群&#xff0c;参考上个本人的博客&#xff1a;Redis-Cluster集群的部署&#xff08;详细步骤&#xff09;_是胡也是福的博客-CSDN博客 新准备一台机器&#xff0c;修改主机名&#xff0c;关闭防火墙和selinux&#xff0c;参考&#xff1a…...

ModaHub魔搭社区:星环科技向量数据库Hippo社区版来啦

大语言模型正在与企业应用迅速结合,并深刻改变企业的各个产业环节。而大模型训练所使用的数据包含了如文档、图片、音视频等各种类型的非结构化数据,传统关系型数据库能力有限。通过将这些非结构化数据转换为多维向量,可以结构化地在向量数据库中进行管理,实现高效的数据存…...

gitHub添加ssh

gitHub添加ssh 首先你需要有一个github的账户 第一步&#xff1a; 打开终端&#xff0c;输入以下命令&#xff0c;注意“your email”处你自己的邮箱&#xff0c;创建新的ssh ssh-keygen -t ed25519 -C “your email” 第二步&#xff1a;使用ssh登录ssh-agent&#xff0c;终端…...

sql:SQL优化知识点记录(十)

&#xff08;1&#xff09;慢查询日志 Group by的优化跟Order by趋同&#xff0c;只是多了一个having 开启慢查询日志&#xff1a; 演示一下慢sql&#xff1a;4秒之后才会出结果 查看一下&#xff1a;下方显示慢查询的sql &#xff08;2&#xff09;批量插入数据脚本 函数和存…...

STM32 RTC实验

RTC时钟简介 STM32F103的实时时钟&#xff08;RTC&#xff09;是一个独立的定时器。 STM32的RTC模块拥有一组连续计数的计数器&#xff0c;在相对应的软件配置下&#xff0c;可提供时钟日历的功能。 修改计数器的值可以重新设置系统的当前时间和日期。 RTC模块和时钟配置系统…...

C#设计打开文件

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System...

mysql指令行登录如何添加mysql.sock的配置?(亲测)

在 MySQL 的命令行登录中&#xff0c;你可以使用 --socket 参数来指定 MySQL 的 Unix 套接字文件&#xff08;mysql.sock&#xff09;的位置。以下是使用 --socket 参数进行 MySQL 命令行登录的示例&#xff1a; mysql --socket/path/to/mysql.sock -u username -p 将 /path…...

Git 设置和清除用户名和邮箱

作为一款十分流行的版本控制工具&#xff0c;Git 得到了越来越多的开发者的喜爱。然而&#xff0c;当使用 Git 上传代码的时候&#xff0c;很多开发者都会遇到一个问题&#xff0c;那就是如果在提交代码时错误地设置了用户名和邮箱&#xff0c;那么这些信息就会被永久地记录在 …...

【系统设计系列】 回顾可扩展性

系统设计系列初衷 System Design Primer&#xff1a; 英文文档 GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. 中文版&#xff1a; https://github.com/donnemart…...

科兴未来 |轨道交通专业赛 第十二届中国创新创业大赛

一、大赛主题 产业赋能 创享未来 二、参赛方向 1.自主可控的关键核心技术。面向“一带一路”国际市场、国内区域/市域轨道交通一体化需求&#xff0c;征集不同轨制、供电制式、通信信号、交通方式、载运工具等跨标准体系的适配关键应用技术&#xff0c;包括但不限于:列车自动…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...