1.开启acl

#这里的master token是用UUID生成的,保证三个server的acl配置一样
    "acl":{
        "enabled":true,
        "default_policy":"deny",
        "enable_token_persistence":true,
        "tokens":{
            "master":"14d54c5e-24ca-41cc-8c9e-987ba7a96ffb"
        }
    }

2.启动docker-compose up

后台报大量错误

agent: Coordinate update blocked by ACLs

解决办法:创建一个token

#使用POSTMAN,请求方法
PUT
#请求路径
http://192.168.41.128:8500/v1/acl/create
#请求JSON参数
{
  "Name": "Agent Token",
  "Type": "client",
  "Rules": "node \"\" { policy = \"write\" } service \"\" { policy = \"read\" }"
}

#Headers加上X-Consul-Token,值为master的值
14d54c5e-24ca-41cc-8c9e-987ba7a96ffb

#返回结果
{
    "ID": "db98c304-4d38-8660-fafe-6a4be56a40d0"
}

将返回的ID贴到consul节点配置中

    "acl":{
        "enabled":true,
        "default_policy":"deny",
        "enable_token_persistence":true,
        "tokens":{
            "master":"14d54c5e-24ca-41cc-8c9e-987ba7a96ffb",
            "agent":"db98c304-4d38-8660-fafe-6a4be56a40d0"
        }
    }

重新启动,问题解决。

3.配置环境变量

docker exec consul_server_1 consul members

执行上面命令查看members的时候,发现返回为空

配置CONSUL_HTTP_TOKEN环境变量,值为刚刚PUT请求获取的token即可。

修改docker-compose.yml配置,所有节点增加环境变量

    environment:
      - CONSUL_BIND_INTERFACE=eth0
      - TZ=Asia/Shanghai
      - CONSUL_HTTP_TOKEN=db98c304-4d38-8660-fafe-6a4be56a40d0

重新启动docker-compose up,再次查看members

问题解决。

4.登录web ui

打开后发现啥都没有,需要点击ACL,输入master中的值

5.ACL的使用,后续...

本章内容参考https://blog.csdn.net/YellowStar5/article/details/90728468

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐