无法使用多区域设置引导游牧集群“错误引导:意外的响应代码:500(没有区域路径)”

问题描述 投票:0回答:2

我正在尝试在多区域和多数据中心集群中设置Nomad ACL, 在服务器节中,我在所有服务器节点上添加了以下内容

server {
  enabled = true
  bootstrap_expect = 2
  encrypt = "XXX-same-on-all-servers-XXX"
  authoritative_region = "HOME-DC"
  server_join {
    retry_join = ["server1", "server2", "server3"]
  }
}
acl {
  enabled = true
}

在我重新启动所有服务器并跟踪日志后,这就是我得到的

2021-02-01T11:38:04.156Z [WARN]  nomad.rpc: no path found to region: region=HOME-DC
2021-02-01T11:38:04.157Z [ERROR] nomad: failed to fetch namespaces from authoritative region: error="No path to region"

这是我跑步时得到的

nomad acl bootstrap -address=$NOMAD_ADDR
Error bootstrapping: Unexpected response code: 500 (No path to region)

在文档上,我看到它要求您设置 acl 节的replication_token 值,但我不清楚如何执行此操作,是否必须像加密令牌一样以某种方式生成?如果是的话怎么办? 参考

consul nomad hashicorp
2个回答
2
投票
  • 权威区域:

    authoritative_region
    不是必需的,应删除。删除后运行
    nomad acl bootstrap
    即可成功。

  • 非权威地区:

    • authoritative_region
      始终是必需的。
    • replication_token
      也是必需的,
      replication_token
      可以是您权威机构的引导令牌,或者创建另一个令牌以获得更少的功能。

0
投票

有关如何进行正确的 nomad 配置和多区域联邦 nomad 的 acl 的更多详细信息。

假设我们有两个不同的游牧集群(或基本相同的区域)。 “ovh”区域中的游牧集群和“us”区域中的游牧集群。

我们联合他们:

$ nomad server join 10.113.151.192:4648 10.113.151.174:4648 10.113.151.231:4648 10.113.151.224:4648  10.113.151.233:4648  10.113.151.90:4648
Joined 6 servers successfully

现在我们需要选择主要区域。让它成为“ovh”区域。然后我们转到“ovh”区域中的游牧服务器并创建所谓的复制令牌,如下所示:

$ nomad acl token create -type="management" -global=true \
  -name="Cluster A Replication Token" \
  -token="b1e55cc6-8289-6b6e-c779-9f0b0a30e96b"
Accessor ID  = d74642e7-2b8b-25c1-d4e9-169e18548788
Secret ID    = 6ca5eae5-adb9-1687-f2f3-214ab5c4f8c5

其中“-token”是“ovh 区域的引导令牌”

现在我们进入“我们”区域游牧服务器并进行一些更改,如下所示:

# cat /etc/nomad.d/main.json 
{

    "acl": {
        ...
        "replication_token": "6ca5eae5-adb9-1687-f2f3-214ab5c4f8c5"
    },
...
...
  "server": {
        ...
        "authoritative_region": "ovh",
        ...
    },
...

所以基本上我们需要在配置中添加“authoritative_region”和“replication_token”选项。
在所有“美国”区域服务器上重新启动 nomad 服务。 (我们只需要更改“我们”区域的配置)。

结果:进入 Web ui,通过 ovh“bootstrap token”进行身份验证。并且您可以在“ovh”和“us”两个区域中成功导航。

© www.soinside.com 2019 - 2024. All rights reserved.