Day 5. Hashicorp Nomad: How to configure one service advertise multiple ports

Hashicorp Nomad: How to configure one service advertise multiple port

之前在Hashicorp forum看到一个发问 Can a service advertise multiple ports? 所以记录下来。

情境

User在一个task里使用2个port, port name分别是http, metrics, 再向Consul注册一个service, service name为awesome-api, 想要达到2个port注册相同的service,

一般来说会为注册不同的service name如:

...
service {
      name    = "awesome-api-http"
      port    = "http"
    }
    
service {
      name    = "awesome-api-metrics"
      port    = "metrics"
    }
...

User的写法如下:

...
network {
      port "http"    { host_network = "private" }
      port "metrics" {
        host_network = "private"
        static       = "9090"
      }
      //port "metrics" { host_network = "private" }
    }
    
service {
      name    = "awesome-api"
      port    = "http"
      //port  = "metrics"
    }
...

把注解拿掉会报错

Dimension network: reserved port collision metrics=9090 exhausted on [x] nodes

解法

有网友回复可以使用tag来达到这需求:

    service {
      name = "awesome-api"
      port = "http"
      tags = ["http"]
    }

    service {
      name = "awesome-api"
      port = "metrics"
      tags = ["metrics"]
    }

访问的endpoint会变成 http.awesome-api.service.consulmetrics.awesome-api.service.consul
这样即可达成一个service多个port的需求


<<:  从细针切片资料集 建模、预测肿瘤Sklearn Breast Tumor Prediction

>>:  [Day 5] Course 1_Foundation - 资料分析工具及职涯探索

为什麽js中使用了很多的callback方式?

之前写自动化程序的时候,有些算法or通讯(串口或者Tcp)都需要时间,这个时候,往往可以去做其他的事...

{DAY 14} NumPy 学习笔记(下)

前言 现在到了练习NumPy的最後一天,现在要开始跟资料分析的流程接轨 所以我决定从网路上的开源资...

[DAY 24] Elo Rating II

昨天说明了为什麽会想使用Elo Rating 作为战力估计的原因 因为可以把作答者的作答结果 视为作...

变更管理(Change management )

-不同程度的变化(来源:plutora) 变更管理至关重要,但也有开销。一些例行变更可能会被预先批...

AJAX(上)

AJAX(上) ...