【问题标题】:Consul/Nomad combo - How the consul healthcheck resolves its host IPConsul/Nomad 组合 - consul 健康检查如何解析其主机 IP
【发布时间】:2018-06-17 16:16:50
【问题描述】:

我的机器上有 nomad 和 consul 的设置。
我用游牧工作启动了一项服务,并成功注册了它。
我的问题是关于 IP 解析:
- 在 Nomad UI 中,我可以看到 IP 10.0.75.1
- 在 Consul UI 中,在服务发现中,我可以看到 IP 10.0.75.1
- 在 consul healthcheck 中,使用的 IP 是不同的 172.31.194.209

两个 IP 都是很好的主机 IP,但我的问题是服务只回答 10.0.75.1

我的意思并不是真的试图让该服务正常工作,因为我可以通过在 171.31.194.209 上设置不同的配置来解决该问题。

我想了解的是 consul 健康检查如何解析其主机 IP,在我的情况下,它与 Nomad/Consul-UI 不同。还有一种方法可以强制解决这个问题。

请注意,健康检查是由 Nomad 使用 network_mode = host

设置的

一些配置:
CONSUL

{
  "ui":  true,
  "data_dir":  "C:\\Users\\foo\\consul\\data",
  "client_addr":  "10.0.75.1",
  "node_name":  "foonode",
  "server":  true,
  "bind_addr":  "10.0.75.1",
  "ports":  {
              "http":  8500
          },
  "bootstrap":  true,
  "bootstrap_expect":  1,
  "datacenter":  "local",
  "node_meta":  {
                  "user":  "foo"
              }
}

游牧民族

name = "foonode"
bind_addr = "10.0.75.1"
datacenter = "local"
data_dir = "C:\\Users\\foo\\nomad\\data"
server {
    enabled = true
    bootstrap_expect = 1
}
client {
    enabled = true
    options {
        "driver.raw_exec.enable" = "1"
    }
    meta {
        user = "foo"
    }
}
consul {
    address = "http://10.0.75.1:8500"
}

【问题讨论】:

  • Consul 使用 Docker 分配给该容器的 IP 地址,您可以在运行容器的环境中的 NOMAD_IP_foo 变量中找到它,其中 foo 是您分配给任务的端口。

标签: consul nomad


【解决方案1】:

只是猜测,但您的机器有多个 IP 地址。其中之一是 171 地址。将 "advertise_addr": "10.0.75.1" 添加到您的 consul.json 配置帮助中吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-27
    • 2019-11-03
    • 2016-10-13
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2019-08-05
    相关资源
    最近更新 更多