问题描述
我正在尝试在多区域和多数据中心集群中设置 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 值,但我不清楚该怎么做,它是否必须像加密令牌一样以某种方式生成?如果是,那么如何? Reference
解决方法
-
权威区域:
authoritative_region
不是必需的,应该删除。删除后,运行nomad acl bootstrap
会成功。 -
非权威区域:
-
authoritative_region
始终是必需的。 -
replication_token
也是必需的,replication_token
可以是您的权威的引导令牌,或者创建另一个令牌以减少功能。
-