gpt4 book ai didi

docker - 无法让 Consul Connect 与 Nomad 合作

转载 作者:行者123 更新时间:2023-12-02 19:49:22 27 4
gpt4 key购买 nike

我正试图让 Consul Connect 边车特使工作,但边车的健康检查一直失败。

我正在使用以下版本的 Consul 和 Nomad

Consul : 1.7.3
Nomad : 0.11.1
CNI Plugins : 0.8.6

我的设置如下所示。

1 Consul 服务器在 docker 容器中运行 consul。
docker run -d --net=host --name=server -v /var/consul/:/consul/config consul:1.7 agent -server -ui -node=server-1 -bind=$internal_ip -ui -bootstrap-expect=1 -client=0.0.0.0
internal_ip是我的 GCP 虚拟机的内部 IP 地址。

1 台带有 Consul Agent 客户端模式的 Nomad 服务器
nohup nomad agent -config=/etc/nomad.d/server.hcl &

docker run -d --name=consul-client --net=host -v ${volume_path}:/consul/config/ consul:1.7 agent -node=$node_name -bind=$internal_ip -join=${server_ip} -client=0.0.0.0
interal_ip是 GCP 虚拟机的内部 IP 地址和 server_ip是服务器虚拟机的内部 IP 地址。

2 Nomad Client 与 Consul Agent 在客户端模式下
nohup nomad agent -config=/etc/nomad.d/client.hcl &

docker run -d --name=consul-client --net=host -v ${volume_path}:/consul/config/ consul:1.7 agent -node=$node_name -bind=$internal_ip -join=${server_ip} -client=0.0.0.0

在 Nomad 客户上,我也有 consul路径中可用的二进制文件。

现在我正在尝试从 here 部署示例 Nomad 和 Consul Connect 作业
    job "countdash" {
datacenters = ["dc1"]

group "api" {
network {
mode = "bridge"
}

service {
name = "count-api"
port = "9001"

connect {
sidecar_service {}
}
}

task "web" {
driver = "docker"

config {
image = "hashicorpnomad/counter-api:v1"
}
}
}

group "dashboard" {
network {
mode = "bridge"

port "http" {
static = 9002
to = 9002
}
}

service {
name = "count-dashboard"
port = "9002"

connect {
sidecar_service {
proxy {
upstreams {
destination_name = "count-api"
local_bind_port = 8080
}
}
}
}
}

task "dashboard" {
driver = "docker"

env {
COUNTING_SERVICE_URL = "http://${NOMAD_UPSTREAM_ADDR_count_api}"
}

config {
image = "hashicorpnomad/counter-dashboard:v1"
}
}
}
}

服务和边车的 docker 容器启动并在 Consul 中注册,但我无法访问任何服务。

enter image description here

我通过 SSH 连接到 Nomad Client 节点,可以看到容器正在运行。

enter image description here
  • 我注意到奇怪的是,我看不到转发到主机的端口
  • 我无法通过主机的 curl 访问它。

  • 我试着做 curl $internal_ip:9002但它没有用。

    我检查了 Nomad 是否创建了任何新的桥接网络,因为这就是我使用的 modenetwork stanza但是没有新的网络。

    enter image description here

    我的设置中有什么遗漏吗?

    最佳答案

    你试过设置COUNTING_SERVICE_URL = "http://${NOMAD_UPSTREAM_ADDR_count_api}"COUNTING_SERVICE_URL = "http://localhost:8080" ,因为这是特使代理将监听以将流量转发到 count-api 的本地绑定(bind)端口。
    可以在 https://github.com/hashicorp/video-content/tree/master/nomad-connect-integration/nomad_jobs 找到一个有效的连接设置示例。

    关于docker - 无法让 Consul Connect 与 Nomad 合作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61884132/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com