0%

consul【开启ACL】

开启acl

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

启动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"
    }
}

重新启动,问题解决。

配置环境变量

docker exec consul_server_1 consul members

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

配置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
consul

问题解决。

登录web ui

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

consul

参考链接