一款比 K8S 更好用的编排工具——Nomad 中运行 Docker Nomad 简介 Nomad 是一款基于开源,功能强大的调度程序和集群编排引擎。可以轻松管理从单机到大规模集群的各种容器和非容器化应用程序,实现快速部署和跨平台运行。 Nomad 主要特点 作为单个二进制文件运行,资源占用少,支持将资源管理和调度集成到一个单独的系统中,支持多种驱动程序运行 job,包括 Windows、Java、VM、Docker 等,支持分布式和高可用,支持多数据中心,可以跨数据中心调度,强大的可伸缩性,可在现实生产环境中扩展到10K+节点的集群(K8S v1.29 是 5k+ ),支持插件功能,可与 Terraform、Consul、Vault 无缝集成,用于提供资源调配、服务发现和秘密管理。 Nomad 运行 Docker 今天我们以为例,演示基于 Nomad 如何调度和执行 Docker 容器 准备工作 需要确保机器已经安装了 Docker 和 Nomad,如果没有安装可以参考一下安装方式,具体如下: 安装 Docker 以 Ubuntu 系统为例,其他系统安装方式可以参考官网: 安装 Nomad 以 Ubuntu 系统为例,其他系统安装方式可以参考官网: Nomad 启动 Dev 模式 为了简单运行,我们以的方式运行 Nomad agent。 通过终端日志可以看到,Server 端和 Client 端都为 true,表示都已经启动成功。 当然我们也可以查看节点状态,具体如下: 当然,也可以通过 UI 界面进行查看,Client 和 Server 已经启动完成。
编写 Job 文件 在 Nomad 中,应用的编排和运行方式都是通过 Job 文件来描述,下面是一个的 Job 文件例子,具体如下: 在 Job 文件中分为三层结构,其中中为最终任务的配置方案,如上:driver 指定了以 Docker 的方式运行;config 指定了依赖的镜像和服务对外暴露端口;resources 指定了资源配置方案为 CPU 1核和 MEM 512M;env 指定了环境变量配置,用于在执行任务过程中向 Client 节点传递环境变量参数。 注:完整任务配置,也可以访问进行下载 提交和执行 Job 提交任务包含两种方式:和 UI 界面进行上传(”Run Job” -> “Upload file” -> “web_nginx.hcl”),具体地址:
注意⚠️:Job 的伸缩、扩容、调度等都可以基于 UI 界面操作如果 Client 可能执行失败,是因为需要上 DockerHub 拉取镜像失败造成,这种情况,可以手动先拉取进行后再执行“Run Job”,拉取地址为:docker pull nginx:latest Nomad 调度原理 流程比较简单,我们通过一个 Nomad 集群 Docker 调度时序图进行说明,具体如下:
Nomad(Server)发起任务,Nomad(Client)执行任务,UI 可以进行所有的管理工作。 以上就是本期的全部内容,笔者,一名资深的技术开发,谢谢大家的观看,你的支持就是笔者的动力,有问题也可以或。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/61641.html