Nomad系列-Nomad网络模式

2023-11-18

系列文章

概述

Nomad 的网络和 Docker 的也有很大不同, 和 K8s 的有很大不同. 另外, Nomad 不同版本(Nomad 1.3 版本前后)或是否集成 Consul 及 CNI 等不同组件也会导致网络模式各不相同. 本文详细梳理一下 Nomad 的主要几种网络模式

在Nomad 1.3发布之前,它自身并不支持发现集群中运行的其他应用程序。在集群中调度任务时,这是一个非常基本的要求。Nomad依赖于Consul来发现其他“服务”,并为注册和获取服务记录提供一流的支持,这使得事情变得更容易。Consul通过各种机制提供记录,例如REST API,DNS和Consul模板,这些模板在可以注入到应用程序中的Go模板中呈现服务的确切IP/端口。

学习 Nomad 的一个难点在于, Nomad 往往和 Consul 一起运行, 那么对于这种情况来说,一个主要的学习曲线是,我们必须首先了解Consul是如何工作的,部署一个Consul集群, 同时要融会贯通 2 个软件就很难了。Nomad 1.3 解决了这个问题的一部分(即不需要运行Consul就可以进行基本的服务发现),非常适合刚刚开始使用基于Nomad的网络。

场景一: 在主机上公开应用

Host Dynamic Port

从最简单的用例开始:你有一个 redis 容器,你想把它暴露给主机。 相当于我们想要做的docker run是 :

docker run --rm -p=6379 redis

此命令公开主机上的动态端口。要查看端口号到底是什么,您可以执行 docker ps 并在 PORTS 下找到类似于 0.0.0.0:49153->6379/tcp 的输出。

$ redis-cli -p 49153                
127.0.0.1:49153> ping
PONG

那么, 在 Nomad 中相同的操作如何实现?

job "redis" {
  type        = "service"

  group "redis" {
    network {
      mode = "host"
      port "redis" {
        to = 6379
      }
    }

    task "redis" {
      driver = "docker"

      config {
        image = "redis"
        ports = ["redis"]
      }
    }
  }
}

在几行配置中,我们有一个正在运行的Docker容器,它公开了一个动态端口 30627:

Nomad Redis Job Map Port

我们可以通过主机上的 redis-cli 连接到它:

$ redis-cli -p 30627
127.0.0.1:30627> ping
PONG

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nomad系列-Nomad网络模式 的相关文章

随机推荐

  • android 文件删除命令大全,Android中删除sdcard里文件的命令

    Android中删除sdcard里文件的命令 有时我们需要删除android模拟器或手机上的sd卡文件 特别是模拟器上的 这时我们就需要借助于一些命令来帮助我们删除文件 复制代码 代码如下 重新挂载模拟器 adb remount 开始she
  • fasterxml ToStringSerializerBase报错

    ToStringSerializerBase报错 报错内容 整合dubbo时报错 Caused by java lang NoClassDefFoundError com fasterxml jackson databind ser std
  • 英语姓名

    英语姓名的一般结构为 教名 自取名 姓 如 William Jafferson Clinton 但在很多场合中间名往往略去不写 如 George Bush 而且许多人更喜欢用昵称取代正式教名 如 Bill Clinton 上述教名和中间名又
  • Unity中的单元测试

    我知道的单元测试有两种方法 1 从Unity的AssetStore窗口下载UnityTestTools 已下架了 2 使用TestRuner 2018 2 5以上版本有 我用的是2018 2 7 TestRuner的用法 操作窗口 Wind
  • 堵塞队列之ArrayBlockingQueue和LinkedBlockingQueue解析

    在线程池创建的时候 需要传一个堵塞队列来维护需要执行的线程任务 其中最常用的是ArrayBlockingQueue和LinkedBlockingQueue 他们都继承了BlockingQueue接口 ArrayBlockingQueue 一
  • 交叉熵损失

    什么是交叉熵损失 提起损失 我们最熟悉的可能就是MSE 最小均方误差损失了 MSE通俗理解 就是预测值与真实值之间取个差 再求平方 交叉熵损失也是一种衡量预测值与真实值之间的差异的方式 两者的定义不同 适用的范围也不同 通常来说 交叉熵损失
  • 如何从Python入门机器学习

    学习Python基本语法 首先我在Python官网找到入门教程 快速过了一遍Python的基本语法 相信对于稍微有点编程基础的人来说这都不是事儿 作为实践 接着我用Python实现了一个基于命令行翻译脚本 到此Python算入门了 这里啰嗦
  • 如何用R分析CNKI文献关键词词频?

    疑惑 如何用VOSviewer分析CNKI数据 一文发布后 有同学问我 王老师 我有个问题 我用cnki导出关键词后 想统计关键词的词频 我应该用什么样的工具 如果不利用citespace和python 做出excel那种的统计表格 该怎么
  • 操作系统笔记整理8——虚拟存储器

    点此链接可跳转到 操作系统笔记整理 目录索引页 参考书籍 计算机操作系统 第四版 汤小丹等编著 文章目录 点此链接可跳转到 操作系统笔记整理 目录索引页 虚拟存储器概述 请求分页存储管理方式 请求页表机制 地址变换 物理块的分配策略 例题
  • Sqli-labs之Less-28和Less-28a

    Less 28 基于错误的 单引号字符型 过滤了union和select等的注入 判断注入类型 1和1 正常回显 1 报错 单引号字符型 2 26 26 1 1回显为id 1 有小括号 参看源码 发现没有过滤or与and 过滤了相连的uni
  • vuforia for unity 入门教程

    一 配置vuforia环境 与 运行简单AR程序 1 安装unity2017 1 从官网上下载unity2017下载器 2 运行下载器勾选上vuforiasupport选项 其余不变 点击开始安装 2 创建AR项目与配置AR运行环境 1 打
  • KITTI数据集介绍

    KITTI数据集 7481 training images and point clouds and 7518 test images and point clouds 采集平台 1惯性导航系统 GPS IMU OXTS RT 3003 1
  • Python基础教程(入门教程),30分钟玩转Python编程!

    这是一篇针对初学者的 Python 基础教程 只要你认真阅读 花费 30 分钟即可快速了解 Python 这篇 Python 入门教程讲解的知识点包括 Python 编程环境的搭建 Python 基本操作入门 Python 数据类型 Pyt
  • bit、Byte、bps、Bps、pps、Gbps的单位详细说明及换算

    bit Byte bps Bps pps Gbps的单位详细说明及换算 bit 电脑记忆体中最小的单位 在二进位电脑系统中 每一bit 可以代表0 或 1 的数位讯号 Byte 字节单位 一般表示存储介质大小的单位 一个B 常用大写的B来表
  • 为什么uzi排到古手羽就秒_为什么uzi排到古手羽就秒退看一下直播间里的弹幕就清楚了!...

    为什么uzi排到古手羽就秒退 看一下直播间里的弹幕就清楚了 百度APP游戏年度票选活动 前言 12月24号英雄联盟电竞圈快讯 12月份的电竞圈显得有点冷清 不过龙百万仍然会带来每天的精彩快讯 和召唤师们聊聊天 谈谈心 刚出道就遭受巨大压力的
  • 【总结】MySQL1

    MySQL 1 关系型数据库 1 1 特点 理论基础 关系代数 集合论 一阶逻辑 关系运算 具体表象 用二维表装数据 表 table entity relation 列 column field attribute 行 row record
  • 认识Java虚拟机中的类加载子系统和执行引擎

    目录 一 JVM整体架构 二 JVM类装载子系统 一 类加载过程 二 类加载器 三 类加载机制 1 全盘负责委托机制 2 双亲委派机制 Parents Delegation Model
  • XMT.com超200万被区块链终端交易

    链客 专为开发者而生 有问必答 此文章来自区块链技术社区 未经允许拒绝转载 狭义来讲 区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构 并以密码学方式保证的不可篡改和不可伪造的分布式账本 当下 区块链俨然成为炙手可
  • c语言基础(一)——预处理详解

    目录 1 预处理是什么 2 预定义符号 3 define标识符 3 1 define 定义标识符 3 2 define定义宏 命名约定 3 3 宏的题目 4 和 4 1 的作用 4 2 的作用 5 带副作用的宏参数 6 宏与函数的对比 7
  • Nomad系列-Nomad网络模式

    系列文章 Nomad 系列文章 概述 Nomad 的网络和 Docker 的也有很大不同 和 K8s 的有很大不同 另外 Nomad 不同版本 Nomad 1 3 版本前后 或是否集成 Consul 及 CNI 等不同组件也会导致网络模式各