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

参考链接


文章作者: wuzhiyong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wuzhiyong !
评论
 上一篇
kubernetes-v1.15.0安装【使用kubeadm部署】 kubernetes-v1.15.0安装【使用kubeadm部署】
环境准备 节点名 IP 角色 node2 192.168.41.129 master node3 192.168.41.130 slave node4 192.168.41.131 slave 系统配置在安装之前,需要
2019-09-06
下一篇 
consul【docker-compose部署】 consul【docker-compose部署】
前章回顾上一章使用了docker命令部署consul集群,但是每次都敲命令太麻烦了,可以使用docker-compose简化。 docker-compose简介本章内容参考官网:https://docs.docker.com/compose
2019-09-04
  目录