Attempting to join edge node to server node in another region returns `No path to region`

I’m trying to replicate the edge node architecture depicted in the Nomad 1.3 blog post using Nomad 1.2.6.

I’m able to successfully join my client node in region A to the server node in region B. I can see all the servers by running nomad server members on the client node. However, when I try to run nomad node status, I get the following error:

Error querying node status: Unexpected response code: 500 (rpc error: No path to region)

The client and servers can access port 4647 on each other.

The server nodes have Consul installed on them, but the client nodes do not, since I can’t run Consul servers in the same datacenter.

Here’s the config for the client node:

region = "region-a"
datacenter = "region-a1"

bind_addr = "0.0.0.0"

advertise {
        http = "MY_PUBLIC_IP"
        rpc = "MY_PUBLIC_IP"
        serf = "MY_PUBLIC_IP"
}

client {
        enabled = true

        node_class = "job"

        server_join {
                retry_join = ["provider=linode region=us-southeast tag_name=XXXX api_token=XXXX address_type=public_v4"]
        }

        meta {
                # See https://github.com/hashicorp/nomad/issues/9887
                "connect.sidecar_image" = "envoyproxy/envoy:v1.18.3"
        }
}

Here’s the config for the server node:

region = "region-b"
datacenter = "region-b1"

bind_addr = "0.0.0.0"

advertise {
        http = "MY_PUBLIC_IP"
        rpc = "MY_PUBLIC_IP"
        serf = "MY_PUBLIC_IP"
}

server {
        enabled = true
        bootstrap_expect = 3
}

The client is repeating the following logs:

[ERROR] client.rpc: error performing RPC to server: error="rpc error: No path to region" rpc=Node.GetClientAllocs server=XXXX:4647
[ERROR] client.rpc: error performing RPC to server which is not safe to automatically retry: error="rpc error: No path to region" rpc=Node.GetClientAllocs server=XXXX:4647
[ERROR] client: error querying node allocations: error="rpc error: No path to region"

Am I missing something? Is this only possible in Nomad 1.3?

I’m fairly certain that the blog post intends for region = "global" for this to work appropriately.

1 Like