2

我有以下问题,我不确定我做的不对还是没有按预期工作。

  1. 我有一个启用了 ACL 的领事集群。
  2. ACL 默认策略设置为 DENY ("acl_default_policy": "deny",)
  3. 现在我一直使用主要的管理 CONSUL 令牌进行通信。
  4. 我还使用管理令牌配置了 VAULT 和 NOMAD,并且“vault.service.consul”和“nomad.service.consul”正在 consul 中注册
  5. 我专门为 NOMAD 配置了带有 consul 管理令牌的 consul 节,以便能够与 consul 通信并自行注册。

consul { address = "127.0.0.1:8500" token = "management token" }

我正在使用 NOMAD 来安排 Docker 容器。那些 docker 容器需要从 CONSUL KV 存储中填充配置文件,我使用 consul 模板(当没有启用 ACL 时)。

现在我的问题是,当我在 CONSUL 中启用 ACL 时 - 由于 ACL,docker 容器无法从 CONSUL KV 存储中获取 403 错误(权限拒绝)的值。我想,因为我已经在 NOMAD 中配置了 consul 节,例如:

consul {
  address = "127.0.0.1:8500"
  token   = "management token"
}

使用 NOMAD 安排的所有作业都将能够使用该管理令牌,并且 Docker 容器将能够与 CONSUL KV 通信?!

如果我将管理令牌作为 Docker 环境变量放在 NOMAD 作业描述中 - 它会起作用:

env {
      "CONSUL_HTTP_TOKEN" = "management token"
    }

但是我不想将该管理令牌放在职位描述中,因为它们将在 git 中检查。

我是不是做错了什么,或者这根本不起作用?

先感谢您。

4

0 回答 0