首页 > 其他分享 >Nomad系列-Nomad网络模式

Nomad系列-Nomad网络模式

时间:2023-09-09 12:35:08浏览次数:43  
标签:系列 service app redis 网络 NOMAD Nomad Consul

系列文章

概述

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

标签:系列,service,app,redis,网络,NOMAD,Nomad,Consul
From: https://www.cnblogs.com/east4ming/p/17689237.html

相关文章

  • 信管知识梳理(二)常规信息系统集成技术(网络协议、网络存储技术、网络工程、数据仓库和中
    一、网络标准与网络协议1.1OSI网络七层架构国际标准化组织(ISO)提出的网络体系结构模型,也叫做开发系统互连参考模型(OSI/RM),通常叫做OSI参考模型。如下图所示:物理层、数据链路层、网络层:统称为通信子网。是为了联网而附加的通信设备完成数据的传输功能。应用层、表示层、会......
  • 网络编程
    title:网络编程index_img:https://tuchuangs.com/imgs/2023/08/12/aa149ca851821467.pngtags:-JavaSEcategories:-JavaSEexcerpt:网络编程网络编程:计算机之间通过网络传输数据。软件架构网络编程三要素IP上网设备在网络中的地址,是唯一的。127.0.0.1永......
  • 云上网络
    VPC网络还有个地域(Region)的概念,这个其实很好理解。因为网络的背后其实就是服务器,承载服务器的是机房,而机房肯定是在某个地域部署。因此公有云需要提供一个类似于虚拟内存的抽象,让云上的某个客户像是在独占地使用整个网络,不用担心IP地址被别人占用了。有了VPC这层抽象,云上的......
  • 动态规划[买卖股票的最佳时机一系列]
    目的是最大化一个利润的值,前提:买必涨,只是考虑赚多少。之前的cost是今天的price收益一次=卖的价格减去买的价格=price-cost。ifprofit<0then0,无滞后性,每次卖股票都是站在当前这天的角度,但是可以看到后面几天股票的价格,所以如果不见涨,则不会买。总收益=很多次收益......
  • 数据通信网络之IPv6静态路由
    文章及资源归档至公众号【AIShareLab】,回复通信系统与网络可获取。一、目的掌握路由器的IPv6基础配置。掌握静态IPv6路由的基础配置。理解IPv6数据报文的路由过程。二、拓扑如图1所示,三台路由器R1、R2和R3分别通过相应物理接口进行连接,其中,R1及R3各自下联一个网段......
  • 获取共享网络的内网IP
     本人有一个iPad,上网用的是电脑共享的网络。  是通过USA连接的共享的方式,结果就不知道iPad的IP了, iPad也没有越狱。被这个问题居然犯难了。 想到用arp广播一下,肯定会有回复。从当前IP地址中寻找。 因为是USA共享,肯定是桥接方式,找 尾部是[bridge]的。......
  • 红日ATT&CK系列靶场(五)笔记
    环境搭建第一次登录会提示需要更改账号密码。win7账号密码:sun\heart123.comsun\Administratordc123.com—————————————————————————————————————————————————————————————2008账号密码sun\admin20......
  • C++系列三:QT-Quick
    目录前言:理论:案例:前言:其实和我接触过的Flutter,有异曲同工之处。记住F1,其实就ok了。参考链接:官方、教程1、教程2、教程3、教程3理论:案例://main.cpp:QQmlApplicationEngineengine;engine.load(QUrl(QStringLiteral("qrc:/qt/qml/qtquickapplication1/main.qml")));if(e......
  • 网络数据传输过程
    过程1、第一环节pc1将数据传输给SW1,形成MAC地址表,MAC地址与端口号一一对应2、第二环节AR1路由器出口g0/0/0,形成ARP解析表,MAC地址与ip地址一一对应3、第三环节AR1与AR2,形成IP路由表,源ip与目的ip4、第四环节目的ip地址,形成目的端的ARP地址信息表,目的IP和目的MAC5、第五环节目的MAC地......
  • 02 网络通信的两个要素
    ......