一款比 K8S 更好用的编排工具——Nomod

今天给笔友们推荐一款最近发现的服务编排工具Nomad。综合感觉就是功能很强大姿势很优雅,相比 K8S 更加轻量级,相比 Docker-Compose 能轻松支持分布式

Nomad 能做什么?

Nomad 采用统一的工作流程,既可以轻松部署和管理任何容器化应用传统应用程序。Nomad 也具备运行多种任务的能力,包括Docker 容器非容器化服务微服务以及批处理应用程序

Nomad 赋予开发者以基础设施即代码(Infrastructure-as-Code)的理念,通过编写脚本及配置文件的方式来部署应用。利用装箱(Bin Packing)算法,高效调度工作负载,优化资源利用率。当然,Nomad 也同时支持 MacOS、Windows 和 Linux 系统。

据笔者了解,诸如 PagerDuty、Target、Citadel、Trivago、SAP、Pandora、Roblox、eBay、Deluxe Entertainment等很多知名公司,均有广泛采用 Nomad 进行服务编排和资源管理。

Nomad 有什么特性?

  • 部署容器和传统应用程序:Nomad 作为灵活的服务编排工具,使我们能够在相同的基础设施上运行容器传统应用程序批处理应用程序。对于编排传统应用程序,Nomad 无需增加额外的容器化插件。

  • 简单可靠:Nomad 作为一个二进制文件运行,完全自包含——将资源管理和调度结合到一个单独的系统中。它不需要任何外部服务进行存储或协调。Nomad 自动处理应用程序、节点和驱动程序故障。作为分布式系统,Nomad 具有弹性,通过选举和状态复制策略来提供高可用

  • 设备插件和GPU支持:Nomad 内置支持 GPU 工作负载,如:机器学习(ML)和人工智能(AI)。它使用设备插件自动检测并使用硬件设备资源,如:GPU、FPGA 和 TPU。

  • 多区域联合部署:Nomad 原生支持多区域联合部署。这种内置功能允许将多个集群链接在一起,使开发人员能够将 job 部署到任何区域的任何集群。联合部署还支持跨所有集群自动复制 ACL 策略、名称空间、资源配额和哨兵策略。

  • 经验证的伸缩性:Nomad 采用乐观并发,增加了吞吐量并降低了服务延迟。已经验证 Nomad 可在现实生产环境中扩展到10K+节点的集群(K8S v1.29 是 5k+ )。

  • 生态系统:Nomad 还可与 Terraform、Consul、Vault 无缝集成,用于提供资源调配、服务发现和秘密管理。

Nomad 能做什么事?

Docker 容器编排

越来越多的公司选择以 Docker 方式进行应用程序的部署和管理。但 Docker 方式则会涉及到编排工具来实现:任务调度、CI/CD、动态伸缩、异常恢复等功能。

Nomad 是笔者心中最优的 Docker 编排工具,比 K8S、K3S 都更好用。如果与 Consul 和 Vault 无缝集成,还能实现更加完整的解决方案,同时最大限度地提高操作灵活性。

传统应用程序部署

相信很多人都有过上云的经验,需要把传统应用程序按 Docker 的方式重新构建、打包、部署,整个流程下来既耗时,又很容易触发 Bug。而且基于 Docker 的部署策略对有的历史服务还不能生效。

针对以上问题,想要体验更好的自动化、弹性更强和成本更低部署编排。Nomad 是一个比较好的选择,因为 Nomad 本身支持直接运行传统应用程序、静态二进制文件、Java jars、QEMU 虚拟机和简单的 OS 命令。而且应用在运行时是隔离的,并以装箱的方式最大限度地提高效率和利用率(降低成本)。

微服务

Nomad 很适合于管理微服务,通过与 Consul 通过优雅地集成,很方便的实现了自动服务注册动态生成配置文件。Nomad 和 Consul 为管理微服务及遵循微服务范式提供了一个理想的解决方案。

批处理任务

Nomad 还可以本机运行批作业参数化作业,Nomad 的体系结构可以更容易的实现扩展并发调度,每秒钟可以部署数千个容器。相比之下,其他替代方案在调度吞吐量、可伸缩性和多云能力方面过于复杂并有局限性。

多区域和多云联合部署

Nomad 被设计用于处理多数据中心多区域部署,并且与云平台类型无关。这使得迁移服务和利用共有云进行服务扩展变得更加容易。

运行任何工作负载

Nomad 可以运行所有类型的工作负载,包括 Docker、非 Docker、Windows、QEMU、Java 和更多。无论您使用的是传统的虚拟机映像、Docker 容器映像、静态二进制文件还是 Java 应用程序,Nomad 都可以轻松运行。

做个小结

Nomad 真的算是一款功能强大的集群管理器,简化分布式应用程序的部署、管理和监控。以轻量级设计和高度可扩展性,可以轻松管理从单机到大规模集群的各种环境,真的太牛逼了。

以上就是本期的全部内容,笔者荒生,一名资深的技术开发,谢谢大家的观看,点赞、评论、加关注你的支持就是笔者的动力,有问题也可以私信笔者留言询问

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

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

相关文章

20 OpenCV像素重映

文章目录 像素重映remap 重映算子代码示例 像素重映 简单点说就是把输入图像中各个像素按照一定的规则映射到另外一张图像的对应位置上去,形成一张新的图像。 g(x,y)是重映射之后的图像,h(x,y)是功能函数,f是源图像 remap 重映算子 Remap…

高效备考2025年AMC8竞赛:吃透2000-2024年600道真题(免费送题)

我们继续来随机看五道AMC8的真题和解析,根据实践经验,对于想了解或者加AMC8美国数学竞赛的考生来说,吃透AMC8历年真题是备考更加科学、有效的方法之一。 即使不参加AMC8竞赛,吃透了历年真题600道和背后的知识体系,那么…

阳光保险MySQL数据库平稳迁移OceanBase,稳定运营超700天

作者简介: 车东兴:于阳光保险就职,深耕保险行业的 IT 领域长达12 年,对保险领域的基础架构实践有深刻的理解与掌握。熟悉多款数据库,具有丰富的数据库运维经验。 王华城:于阳光保险就职,10多年一…

线性表——单链表的增删查改

本节复习链表的增删查改 首先, 链表不是连续的, 而是通过指针联系起来的。 如图: 这四个节点不是连续的内存空间, 但是彼此之间使用了一个指针来连接。 这就是链表。 现在我们来实现链表的增删查改。 目录 单链表的全部接口…

Swift:.ignoresSafeArea():自由布局的全方位掌握

ignoresSafeArea(_ regions : edges:)修饰符的说明 SwiftUI布局系统会调整视图的尺寸和位置,以避免特定的安全区域。这就确保了系统内容(比如软件键盘)或设备边缘不会遮挡您的视图。要将您的内容扩展到这些区域,您可以通过应用该修…

Python - 应用篇 :ChatGPT +Pycharm 序列号自动生成

前言: 客户要求在产品外壳上新增可追溯的二维码贴花,二维码信息内容如下: 编码格式:SBD 零部件代码 控制盒序列号 控制盒厂家 例如:[)>06P725-18428S24031410001ZJL SBD 零部件代码:[)>06P725-184…

【办公类-40-02】20240311 python模仿PPT相册功能批量插入照片,更改背景颜色 (家长会系列二)

作品展示——用Python插入PPT相册 背景需求: 马上就要家长会,我负责做会议前的照片滚动PPT,通常都是使用PPT的相册功能批量导入照片, 生成给一个新的PPT文件 更改背景颜色 设置4秒间隔,应用到全部 保存,改…

linux板子vscode gdb 远程调试

板子:hi3556v200 交叉编译工具:arm-himix200-linux 主机:win10虚拟机的ubuntu16.4 gdb:gdb-8.2.tar.gz 1.在ubuntu交叉编译gdb(Remote g packet reply is too long解决) 建议修改gdb8.2/gdb目录下面的remote.c解决…

git的实际运用

1. SSH配置和Github仓库克隆 注意博主在这里演示的SSH密钥生成方式,下面追加的五行不成功时可手动到.ssh下的config文件中添加即可 $ tail -5 config Host github.comHostName github.comPreferredAuthentications publickeyIdentityFile ~/.ssh/test 演示 2. 关联…

YoloV7改进策略:下采样改进|HWD改进下采样

摘要 本文使用HWD改进下采样,在YoloV7的测试中实现涨点。 论文解读 在卷积神经网络(CNNs)中,极大池化或跨行卷积等下采样操作被广泛用于聚合局部特征、扩大感受野和最小化计算开销。然而,对于语义分割任务&#xff…

C++手写链表、反转链表、删除链表节点、遍历、为链表增加迭代器

本篇博客介绍如何使用C实现链表,首先编写一个简单的链表,然后增加模板,再增加迭代器。 简单链表的实现 链表的结构如下: 首先需要定义链表的节点: struct ListNode {int data;ListNode* pNext;ListNode(int value …

使用STM32+ESP8266(ESP-01S)+点灯科技(手机端Blinker)实现远程控制智能家居

硬件准备:STM32单片机、ESP8266(ESP-01S)、CH340C下载烧录器 软件准备:STM32CubeMX、Keil uVision5、Arduino IDE、 点灯科技(手机端APP Blinker)点灯科技 (diandeng.tech)点击进入 值得注意的是&#x…

Redis:ClassCastException【bug】

Redis:ClassCastException【bug】 前言版权Redis:ClassCastException【bug】错误产生相关资源控制器:UserController("/user")配置:RedisConfiguration实体类:User数据表:User 解决 最后 前言 2…

R语言语法基础(说人话版)

在Rstudio中使用ctrl回车来执行某一行的代码 在R语言中,通常不需要像C语言一样在每条语句的结尾添加分号来表示语句结束。R语言是一种脚本语言,它使用换行符来分隔语句,因此分号通常是可选的,除非你想在同一行上写多个语句。在R中…

03-java基础-运算符(数据类型转换)、原码、补码、反码

一、运算符 一、1、算术运算符 在代码中如果有小数参与运算,结果有可能会不精确。 一、1.1、数字相加 一、1.1.1、类型转换的分类(2种) 一、1.1.1.1、类型转换的分类1-----隐式转换 一、1.1.1.1、类型转换的分类2-----强制转换 一、1.2、字符…

EtherCAT开源主站 IGH 介绍及主站伺服控制过程

目录 前言 IGH EtherCAT主站介绍 主要特点和功能 使用场景 SOEM 主站介绍 SOEM 的特点和功能 SOEM 的使用场景 IGH 主站 和 SOEM对比 1. 功能和复杂性 2. 资源消耗和移植性 3. 使用场景 EtherCAT 通信原理 EtherCAT主站控制伺服过程 位置规划模式 原点复归模式…

ASP.NET Mvc+FFmpeg+Video实现视频转码

目录 首先,做了视频上传的页面: FFmpeg:视频转码 FFmpegHelper工作类: 后台控制器代码: 前端视图代码: 参考文章: 首先,做了视频上传的页面: 借鉴了这篇文章 ASP.…

应用层_HTTPHTTPS

在应用层中,协议一般是程序员定制的,但现在已经有了许多非常好用的协议,我们可以直接参考使用。其中http和https便是其中最常用的协议之一。 一.HTTP 超文本传输协议(Hypertext Transfer Protocol,HTTP)…

腾讯春招后端一面(八股篇)

前言 前几天在网上发了腾讯面试官问的一些问题,好多小伙伴关注,今天对这些问题写个具体答案,博主好久没看八股了,正好复习一下。 面试手撕了三道算法,这部分之后更,喜欢的小伙伴可以留意一下我的账号。 1…

【C语言】—— 指针二 : 初识指针(下)

【C语言】——函数栈帧 一、 c o n s t const const 修饰指针1.1、 c o n s t const const 修饰变量1.2、 c o n s t const const 修饰指针 二、野指针2.1野指针的成因(1)指针未初始化(2)指针越界访问(3)指…